Object-oriented programming apparatus, object-oriented programming supporting apparatus, component builder apparatus, object-oriented program storage medium, program storage medium for use in object-oriented programming, component storage medium, and object-between-network display method

ABSTRACT

As to an object-oriented programming, reuse of softwares is enhanced and running speed is improved. There are made up a data element list in which pointers to data storage areas of object A are arranged and a pointer element list in which pointers to pointer storage areas of object B are arranged. A combination of the data element list and the pointer element list makes it possible to directly refer to data of the object A from the object B.

This application is a divisional of application Ser. No. 08/919,254,filed Aug. 28, 1997, now U.S. Pat. No. 6,178,545; which is a CIPapplication of Ser. No. 08/855,986, filed May 14, 1997, now abandoned.

BACKGROUND OF THE INVENTION

1. Field of the Invention

The present invention relates to an object-oriented programmingapparatus for performing object-oriented programming, an object-orientedprogramming supporting apparatus for supporting an object-orientedprogramming, a component builder apparatus for building componentsforming a part of an object, an object-oriented program storage mediumfor storing therein object-oriented programs, a program storage mediumfor use in an object-oriented programming, the program storage mediumbeing adapted for storing therein a program to support anobject-oriented programming, a component storage medium for storingtherein components, and an object-between-network display method ofvisually displaying in the form of a network of objects data integrationdue to data sharing, integration of control flows among objects, and thelike, on a plurality of objects produced by object-oriented programming.

2. Description of the Related Art

Hitherto, when at program, which is incorporated into a computer so asto be operated, is described, a programming is performed in such amanner that a function name (command) and a variable are described inturn. In case of such a programming scheme, since there is a need todescribe the programming with the commands in its entirety, it isnecessary for a programmer to investigate the commands one by onethrough a manual, or to remember a lot of commands. However, thosecommands are different for each program language. Accordingly, even if aprogrammer remembers a lot of commands of a certain program language,when the programmer describes a program with another program language,there occurs such an inconvenience that the programmer has to do overagain learning the commands of the program language. Further, formats ofprograms are also different for each program language. These mattersmake a description of the program difficult, and give such an impressionthat a development of programs is a special field which is deemed thatit is difficult for a nonprofessional to enter thereinto. Recently,programs are increasingly large-scaled and complicated, and thus thereis emphasized more and more a necessity that a development of programsis made easier, and also a necessity for contributing to a reuse of theonce developed programs.

In such a technical background, recently, object-oriented programminghas been widely adopted. An object is a named entity that combines adata structure with its associated operations. That is, the objectcomprises “data” and “its associated operations”. The term“object-oriented” implies a concept that the “data” and “its associatedoperations”, that is, the object, is treated in the form of units. Alsoin such an object-oriented programming, there is a need to essentiallybuild each individual software (object). After the individual objectsare once built, however, a programming is completed in such a mannerthat a coupling relation of object-to-object is described such that acertain object calls another object. It is expected that this concept ofobject-oriented programming serves to significantly improve operabilityof large-scaled and complicated software, the creation of such software,and the maintenance thereof.

In object-oriented programming, an operation in which a certain objectcalls another object uses concepts of messages and methods such that thecalling object issues a message to the called party of the object, whilethe called party of the object receives the issued message and executesits associated methods (operations). Hitherto, data necessary for aprocess was provided in the form of arguments of the messages.

One of the objects of object-oriented programming resides in the pointthat software (object) once made up can be reused even if the system isaltered. In order to implement this, there is a need to make up arelatively small and simple object.

In general, however, it is said that an object-oriented program is lowin its execution rate because it takes a lot of time to recognize acorresponding relation between the received message and its associatedmethod, and also it takes a lot of time to transfer data from an object,which issues the message, to an object which executes the method.

In order to improve the program execution rate, hitherto, there wasadopted a technique in which operations in one object are increased toreduce opportunities of issuing messages directed to another object. Inthis case, however, the operations in one object becomes complicated,and the object is scaled up. This technique is contrary to the desirefor reuseable objects and thus, it is one of the causes of prohibitingthe possibility of promoting reuse of software in the object-orientedprogramming.

When the object-oriented programs are promoted, the serious problem isinvolved in handling of a large amount of software accumulated up tonow, which is not based on an object-oriented concept. Theobject-oriented programming technology according to the earlierdevelopment has been associated with such a problem that the possibilityof promoting reuse of the existing software is extremely low.

SUMMARY OF THE INVENTION

In view of the above-mentioned problem, it is therefore an object of thepresent invention to provide an object-oriented programming apparatushaving a function of coupling a plurality of objects with one another sothat information efficiently flows among the plurality of objects, anobject-oriented program storage medium for storing therein a pluralityof objects and object-coupling programs for coupling the plurality ofobjects with one another so that information efficiently flows among theplurality of objects, an object-oriented programming supportingapparatus which contributes to facilitation of an object-orientedprogramming for defining a coupling relation between objects, a programstorage medium for use in an object-oriented programming, the programstorage medium being adapted for storing therein a program to support anobject-oriented programming, a component builder apparatus having afunction of building a component which serves as an object incombination with an existing software so that the existing software canbe dealt with as the object, a component storage medium for storingtherein components as mentioned above, and an object-between-networkdisplay method of visually displaying in the form of a network ofobjects a data integration due to a data sharing, an integration ofcontrol flows among objects and the like, on a plurality of objectsproduced by the object-oriented programming, the object-between-networkdisplay method being suitable for performing an object-orientedprogramming for defining a coupling relation between objects.

To attain the above-mentioned object, according to the presentinvention, there is provided a first object-oriented programmingapparatus for interconnecting a plurality of objects each having dataand operations, said object-oriented programming apparatus comprising:

instruction coupling means for permitting a transfer of messages betweena first object having an output instruction bus portion for performing aprocessing for an issue of messages directed to another object and asecond object having an input instruction bus portion responsive tomessages issued by another object and directed to self object foractivating a method of self object associated with the received message,by means of providing such a correspondence that the message of thefirst object is associated with the method of the second object;

data element list generating means for generating a data element list,in which pointers to data storage areas for storing data are arranged,of an object;

pointer element list generating means for generating a pointer elementlist, in which pointers to pointer storage areas for storing pointers todata are arranged, of an object; and

data coupling means for permitting a transfer of data between a thirdobject having the data element list and a fourth object having thepointer element list, by means of writing the pointers arranged in thedata element list of the third object into the pointer storage areasindicated by the pointers arranged in the pointer element list of thefourth object.

In the first object-oriented programming apparatus, it is preferablethat said instruction coupling means generates a method element list inwhich arranged are method elements including a method ID for specifyinga method of another object associated with a message of self object, anda pointer to another object in which the method specified by the methodID is executed.

To attain the above-mentioned object, according to the presentinvention, there is provided a second object-oriented programmingapparatus for interconnecting a plurality of objects each having dataand operations, said object-oriented programming apparatus comprising:

instruction coupling means for permitting a transfer of messages betweena first object having an output instruction bus portion for performing aprocessing for an issue of messages directed to another object and asecond object having an input instruction bus portion responsive tomessages issued by another object and directed to self object foractivating a method of self object associated with the received message,by means of providing such a correspondence that the message of thefirst object is associated with the method of the second object; and

an input instruction tag table generating means for generating an inputinstruction tag table indicating an association of messages of anotherobject with methods of self object, for each other object, on the outputinstruction bus portion of self object.

In the second object-oriented programming apparatus, it is preferablethat said instruction coupling means generates a method element list inwhich arranged are method elements including a method ID for specifyinga method of another object associated with a message of self object, anda pointer to another object in which the method specified by the methodID is executed, and

said input instruction tag table generating means generates the inputinstruction tag table and adds the input instruction tag table to themethod elements including the pointer to another object associated withthe input instruction tag table.

As one of ways that the input instruction tag table is added to themethod element, it is acceptable that a pointer to the input instructiontag table is directly written to the method element.

To attain the above-mentioned object, according to the presentinvention, there is provided a third object-oriented programmingapparatus for interconnecting a plurality of objects each having dataand operations, said object-oriented programming apparatus comprising:

instruction coupling means for permitting a transfer of messages betweena first object having an output instruction bus portion for performing aprocessing for an issue of messages directed to another object and asecond object having an input instruction bus portion responsive tomessages issued by another object and directed to self object foractivating a method of self object associated with the received message,by means of providing such a correspondence that the message of thefirst object is associated with the method of the second object; and

an output instruction tag table generating means for generating anoutput instruction tag table indicating an association of methods ofanother object with messages of self object, for each other object, onthe output instruction bus portion of self object.

In the third object-oriented programming apparatus, it is preferablethat said instruction coupling means generates a method element list inwhich arranged are method elements including a method ID for specifyinga method of another object associated with a message of self object, anda pointer to another object in which the method specified by the methodID is executed, and

said output instruction tag table generating means generates the outputinstruction tag table and adds the output instruction tag table to themethod elements including the pointer to another object associated withthe output instruction tag table.

As one of ways that the output instruction tag table is added to themethod element, it is acceptable that a pointer to the outputinstruction tag table is directly written to the method element.

To attain the above-mentioned object, according to the presentinvention, there is provided a fourth object-oriented programmingapparatus for interconnecting a plurality of objects each having dataand operations, said object-oriented programming apparatus comprising:

instruction coupling means for permitting a transfer of messages betweena first object having an output instruction bus portion for performing aprocessing for an issue of messages directed to another object and asecond object having an input instruction bus portion responsive tomessages issued by another object and directed to self object foractivating a method of self object associated with the received message,by means of providing such a correspondence that the message of thefirst object is associated with the method of the second object; and

an input data tag table generating means for generating an input datatag table indicating an association of a data element list ID foridentifying a data element list in which pointers to data storage areasfor storing data are arranged with a pointer element list ID foridentifying a pointer element list in which pointers to data storageareas for storing pointer to data are arranged, for each other object,on the output instruction bus portion of self object.

In the fourth object-oriented programming apparatus, it is preferablethat said instruction coupling means generates a method element list inwhich arranged are method elements including a method ID for specifyinga method of another object associated with a message of self object, anda pointer to another object in which the method specified by the methodID is executed, and

said input data tag table generating means generates the input data tagtable and adds the input data tag table to the method elements includingthe pointer to another object associated with the input data tag table.

As one of ways that the input data tag table is added to the methodelement, it is acceptable that a pointer to the input data tag table isdirectly written to the method element.

To attain the above-mentioned object, according to the presentinvention, there is provided a fifth object-oriented programmingapparatus for interconnecting a plurality of objects each having dataand operations, said object-oriented programming apparatus comprising:

instruction coupling means for permitting a transfer of messages betweena first object having an output instruction bus portion for performing aprocessing for an issue of messages directed to another object and asecond object having an input instruction bus portion responsive tomessages issued by another object and directed to self object foractivating a method of self object associated with the received message,by means of providing such a correspondence that the message of thefirst object is associated with the method of the second object; and

an output data tag table generating means for generating an output datatag table indicating an association of a pointer element list ID foridentifying a pointer element list in which pointers to pointer storageareas for storing pointers to data are arranged with a data element listID for identifying a data element list in which pointers to data storageareas for storing data are arranged, for each other object, on theoutput instruction bus portion of self object.

In the fifth object-oriented programming apparatus, it is preferablethat said instruction coupling means generates a method element list inwhich arranged are method elements including a method ID for specifyinga method of another object associated with a message of self object, anda pointer to another object in which the method specified by the methodID is executed, and

said output data tag table generating means generates the output datatag table and adds the output data tag table to the method elementsincluding the pointer to another object associated with the output datatag table.

As one of ways that the output data tag table is added to the methodelement, it is acceptable that a pointer to the output data tag table isdirectly written to the method element.

To attain the above-mentioned object, according to the presentinvention, there is provided a first object-oriented program storagemedium for storing

a plurality of objects each having data and operations, saidobject-oriented program storage medium storing

an object coupling program comprising:

instruction coupling means for permitting a transfer of messages betweena first object having an output instruction bus portion for performing aprocessing for an issue of messages directed to another object and asecond object having an input instruction bus portion responsive tomessages issued by another object and directed to self object foractivating a method of self object associated with the received message,by means of providing such a correspondence that the message of thefirst object is associated with the method of the second object;

data element list generating means for generating a data element list,in which pointers to data storage areas for storing data are arranged,of an object;

pointer element list generating means for generating a pointer elementlist, in which pointers to pointer storage areas for storing pointers todata are arranged, of an object; and

data coupling means for permitting a transfer of data between a thirdobject having the data element list and a fourth object having thepointer element list, by means of writing the pointers arranged in thedata element list of the third object into the pointer storage areasindicated by the pointers arranged in the pointer element list of thefourth object.

In the first object-oriented program storage medium, it is preferablethat said instruction coupling means generates a method element list inwhich arranged are method elements including a method ID for specifyinga method of another object associated with a message of self object, anda pointer to another object in which the method specified by the methodID is executed, and

the first object having the output instruction bus portion refers to,when issuing a message, a method element arranged in the method elementlist associated with the message, and calls the second object in which apointer is stored in the method element, giving the method ID stored inthe method element as an argument.

In this case, the second object receives messages directed from thefirst object to the second object, and executes the method identified bythe method ID which is an argument of the received message.

To attain the above-mentioned object, according to the presentinvention, there is provided a second object-oriented program storagemedium for storing

a plurality of objects each having data and operations, saidobject-oriented program storage medium storing

an object coupling program comprising:

instruction coupling means for permitting a transfer of messages betweena first object having an output instruction bus portion for performing aprocessing for an issue of messages directed to another object and asecond object having an input instruction bus portion responsive tomessages issued by another object and directed to self object foractivating a method of self object associated with the received message,by means of providing such a correspondence that the message of thefirst object is associated with the method of the second object; and

an input instruction tag table generating means for generating an inputinstruction tag table indicating an association of messages of anotherobject with methods of self object, for each other object, on the outputinstruction bus portion of self object.

In the second object-oriented program storage medium, it is preferablethat said instruction coupling means generates a method element list inwhich arranged are method elements including a method ID for specifyinga method of another object associated with a message of self object, anda pointer to another object in which the method specified by the methodID is executed, and

said input instruction tag table generating means generates the inputinstruction tag table and adds the input instruction tag table to themethod elements including the pointer to another object associated withthe input instruction tag table.

As one of ways that the input instruction tag table is added to themethod element, it is acceptable that a pointer to the input instructiontag table is directly written to the method element.

It is acceptable that the first object having the method element towhich the input instruction tag table is added calls, when calling thesecond object identified by the method element, the second object givingas arguments the method ID and the input instruction tag table which arestored in the method element.

As one of ways that the second object is called giving as arguments theinput instruction tag table, it is acceptable that the second object isdirectly called giving as arguments a pointer to the input instructiontag table.

In this case, the second object receives messages directed from thefirst object to the second object, and executes the method identified bythe method ID which is an argument of the received message.

It is acceptable that the second object receives messages directed fromthe first object to the second object, and refers to the inputinstruction tag table, which is an argument of the received message, toexecute the method of the first object associated with the message ofthe second object.

It is preferable that the second object receives messages directed fromthe first object to the second object, and refers to the inputinstruction tag table, which is an argument of the received message, toadd the method element related to the method of the first objectassociated with the message of the second object to the method elementlist of the second object associated with the message of the secondobject.

It is also preferable that the second object has means for producing athird object, receives messages directed from the first object to thesecond object, and refers to the input instruction tag table, which isan argument of the received message, to add the method element relatedto the method of the first object associated with messages of the thirdobject to the method element list of the third object associated withthe message of the third object.

In this case, a timing of producing the third object by the secondobject is not restricted in the present invention, and it is acceptablethat the third object is produced when the message is issued,alternatively, the third object is produced beforehand.

To attain the above-mentioned object, according to the presentinvention, there is provided a third object-oriented program storagemedium for storing

a plurality of objects each having data and operations, saidobject-oriented program storage medium storing

an object coupling program comprising:

an instruction coupling means for permitting a transfer of messagesbetween a first object having an output instruction bus portion forperforming a processing for an issue of messages directed to anotherobject and a second object having an input instruction bus portionresponsive to messages issued by another object and directed to selfobject for activating a method of self object associated with thereceived message, by means of providing such a correspondence that themessage of the first object is associated with the method of the secondobject; and

an output instruction tag table generating means for generating anoutput instruction tag table indicating an association of methods ofanother object with messages of self object, for each other object, onthe output instruction bus portion of self object.

In the third object-oriented program storage medium, it is preferablethat said instruction coupling means generates a method element list inwhich arranged are method elements including a method ID for specifyinga method of another object associated with a message of self object, anda pointer to another object in which the method specified by the methodID is executed, and

said output instruction tag table generating means generates the outputinstruction tag table and adds the output instruction tag table to themethod elements including the pointer to another object associated withthe output instruction tag table.

As one of ways that the output instruction tag table is added to themethod element, it is acceptable that a pointer to the outputinstruction tag table is directly written to the method element.

It is acceptable that the first object having the method element towhich the output instruction tag table is added calls, when calling thesecond object identified by the method element, the second object givingas arguments the method ID and the output instruction tag table whichare stored in the method element.

As one of ways that the second object is called giving as arguments theoutput instruction tag table, it is acceptable that the second object isdirectly called giving as arguments a pointer to the output instructiontag table.

In this case, the second object receives messages directed from thefirst object to the second object, and executes the method identified bythe method ID which is an argument of the received message.

It is acceptable that the second object receives messages directed fromthe first object to the second object, and refers to the outputinstruction tag table, which is an argument of the received message, toadd the method element related to the method of the second objectassociated with the message of the first object to the method elementlist of the first object associated with the message of the firstobject.

It is preferable that the second object has means for producing a thirdobject, receives messages directed from the first object to the secondobject, and refers to the output instruction tag table, which is anargument of the received message, to add the method element related tothe method of the third object associated with messages of the firstobject to the method element list of the first object associated withthe message of the first object.

In this case, similar to the second object-oriented program storagemedium, a timing of producing the third object by the second object isnot restricted in the present invention, and it is acceptable that thethird object is produced when the message is issued, alternatively, thethird object is produced beforehand.

To attain the above-mentioned object, according to the presentinvention, there is provided a fourth object-oriented program storagemedium for storing

a plurality of objects each having data and operations, saidobject-oriented program storage medium storing

an object coupling program comprising:

an instruction coupling means for permitting a transfer of messagesbetween a first object having an output instruction bus portion forperforming a processing for an issue of messages directed to anotherobject and a second object having an input instruction bus portionresponsive to messages issued by another object and directed to selfobject for activating a method of self object associated with thereceived message, by means of providing such a correspondence that themessage of the first object is associated with the method of the secondobject; and

an input data tag table generating means for generating an input datatag table indicating an association of a data element list ID foridentifying a data element list in which pointers to data storage areasfor storing data are arranged with a pointer element list ID foridentifying a pointer element list in which pointers to data storageareas for storing pointer to data are arranged, for each other object,on the output instruction bus portion of self object.

In the fourth object-oriented program storage medium, it is preferablethat said instruction coupling means generates a method element list inwhich arranged are method elements including a method ID for specifyinga method of another object associated with a message of self object, anda pointer to another object in which the method specified by the methodID is executed, and

said input data tag table generating means generates the input data tagtable and adds the input data tag table to the method elements includingthe pointer to another object associated with the input data tag table.

As one of ways that the input data tag table is added to the methodelement, it is acceptable that a pointer to the input data tag table isdirectly written to the method element.

It is acceptable that the first object having the method element towhich the input data tag table is added calls, when calling the secondobject identified by the method element, the second object giving asarguments the method ID and the input data tag table which are stored inthe method element.

As one of ways that the second object is called giving as arguments theinput data tag table, it is acceptable that the second object isdirectly called giving as arguments a pointer to the input data tagtable.

In this case, the second object receives messages directed from thefirst object to the second object, and executes the method identified bythe method ID which is an argument of the received message.

It is acceptable that the second object receives messages directed fromthe first object to the second object, refers to the input data tagtable, which is an argument of the received message, to obtain thepointer element list ID of the first object, produces the pointerelement list identified by the pointer element list ID, of the firstobject and in addition the data element list identified by the dataelement list ID associated with the pointer element list ID, of thesecond, and writes the pointers arranged in the data element list of thesecond object into the pointer storage areas indicated by the pointersarranged in the pointer element list of the first object.

It is preferable that the second object has means for producing a thirdobject, receives messages directed from the first object to the secondobject, refers to the input data tag table, which is an argument of thereceived message, to obtain the pointer element list ID of the firstobject, produces the pointer element list identified by the pointerelement list ID, of the first object and in addition the data elementlist identified by the data element list ID associated with the pointerelement list ID, of the third, and writes the pointers arranged in thedata element list of the third object into the pointer storage areasindicated by the pointers arranged in the pointer element list of thefirst object.

In this case, a timing of producing the third object by the secondobject is not restricted in the present invention, and it is acceptablethat the third object is produced when the message is issued,alternatively, the third object is produced beforehand.

To attain the above-mentioned object, according to the presentinvention, there is provided a fifth object-oriented program storagemedium for storing

a plurality of objects each having data and operations, saidobject-oriented program storage medium storing

an object coupling program comprising:

an instruction coupling means for permitting a transfer of messagesbetween a first object having an output instruction bus portion forperforming a processing for an issue of messages directed to anotherobject and a second object having an input instruction bus portionresponsive to messages issued by another object and directed to selfobject for activating a method of self object associated with thereceived message, by means of providing such a correspondence that themessage of the first object is associated with the method of the secondobject; and

an output data tag table generating means for generating an output datatag table indicating an association of a pointer element list ID foridentifying a pointer element list in which pointers to pointer storageareas for storing pointers to data are arranged with a data element listID for identifying a data element list in which pointers to data storageareas for storing data are arranged, for each other object, on theoutput instruction bus portion of self object.

In the fifth object-oriented program storage medium, it is preferablethat said instruction coupling means generates a method element list inwhich arranged are method elements including a method ID for specifyinga method of another object associated with a message of self object, anda pointer to another object in which the method specified by the methodID is executed, and

said output data tag table generating means generates the output datatag table and adds the output data tag table to the method elementsincluding the pointer to another object associated with the output datatag table.

As one of ways that the output data tag table is added to the methodelement, it is acceptable that a pointer to the output data tag table isdirectly written to the method element.

It is acceptable that the first object having the method element towhich the output data tag table is added calls, when calling the secondobject identified by the method element, the second object giving asarguments the method ID and the output data tag table which are storedin the method element.

As one of ways that the second object is called giving as arguments theoutput data tag table, it is acceptable that the second object isdirectly called giving as arguments a pointer to the output data tagtable.

In this case, the second object receives messages directed from thefirst object to the second object, and executes the method identified bythe method ID which is an argument of the received message.

It is acceptable that the the second object receives messages directedfrom the first object to the second object, refers to the output datatag table, which is an argument of the received message, to obtain thedata element list ID of the first object, produces the data element listidentified by the data element list ID, of the first object and inaddition the pointer element list identified by the pointer element listID associated with the data element list ID, of the second, and writesthe pointers arranged in the data element list of the first object intothe pointer storage areas indicated by the pointers arranged in thepointer element list of the second object.

It is preferable that the second object has means for producing a thirdobject, receives messages directed from the first object to the secondobject, refers to the output data tag table, which is an argument of thereceived message, to obtain the data element list ID of the firstobject, produces the data element list identified by the data elementlist ID, of the first object and in addition the pointer element listidentified by the pointer element list ID associated with the dataelement list ID, of the third, and writes the pointers arranged in thedata element list of the first object into the pointer storage areasindicated by the pointers arranged in the pointer element list of thethird object.

In this case, a timing of producing the third object by the secondobject is not restricted in the present invention, and it is acceptablethat the third object is produced when the message is issued,alternatively, the third object is produced beforehand.

To attain the above-mentioned object, according to the presentinvention, there is provided an object-between-network display method inwhich a plurality of objects produced by an object-oriented programmingand wirings representative of flow of data and control among theplurality of objects are displayed on a display screen of an imagedisplay apparatus for displaying images based on electronic imageinformation,

wherein displayed on the display screen is a first image in which adisplay area consisting of one measure obtained through partitioning thedisplay screen into a plurality of measures, or a display area formedthrough coupling a plurality of adjacent measures together, comprises anobject display domain for displaying a single object, and a wiringdisplay domain for displaying wires for coupling a plurality of objectsto one another, the object display domain and the wiring display domainare determined in such a manner that the wiring display domain is formedbetween the object display domain-to-object display domain of the,adjacent two display areas, and

wherein on the display screen each of the plurality of objects isarranged on an associated object display domain of the display area,while the wires for coupling the plurality of objects thus arranged aredisplayed on the wiring display domains ranged across a plurality ofdisplay areas.

According to the object-between-network display method of the presentinvention, it is possible to obtain an arrangement in which objects arearranged in good order, and also to obtain a display easy for anobservation avoiding an overlap of objects with wirings, since an areafor displaying an object and an area for displaying a wiring aredistinguished from each other.

In the object-between-network display method as mentioned above, it ispreferable that a predetermined object of a plurality ofobjects-constituting the first image is constituted of a subnetworkcomprising a plurality of objects, which are of lower class in ahierarchical structure than the predetermined object, and wirings forconnecting the later plurality of objects together, and

that when a second image, in which a subnetwork of said predeterminedobject is displayed instead of a display of said predetermined object inthe first image, is displayed instead of the first image, the subnetworkon the first image is displayed in a more enlarged display area thanthat of said predetermined object, and display areas arranged upper andlower sides and right and left sides of the display area of thesubnetwork are altered to display areas enlarged vertically andhorizontally, respectively, and regarding display areas located atdiagonal positions with respect to the display area of the subnetwork,the display areas are displayed with a same size as that of the firstimage.

An adoption of the above-mentioned display method makes it possible toreadily confirm a connecting state of a subnetwork with the neighbornetworks.

In the object-between-network display method as mentioned above, it isacceptable that a predetermined object of a plurality of objectsconstituting the first image is constituted of a subnetwork comprising aplurality of objects, which are of lower class in a hierarchicalstructure than the predetermined object, and wirings for connecting thelater plurality of objects together, and

wherein when a second image, in which a subnetwork of said predeterminedobject is displayed instead of a display of said predetermined object inthe first image, is displayed instead of the first image, the subnetworkon the first image is displayed in a more enlarged display area thanthat of said predetermined object, and display areas except the displayareas of the subnetwork are deformed as compared with the associateddisplay areas on the first image in such a manner that display areaslocated at a periphery of the second image, and position and size ofsides contacting with the second image, are substantially the same onesas display areas located at a periphery of the first image, and positionand size of sides contacting with the first image, respectively.

An adoption of the above-mentioned display method makes it possible toreadily confirm a connecting state of a subnetwork with the neighbornetworks. In addition, according to the above-mentioned display method,it is possible to confirm throughout a network displayed before adisplay of the subnetwork (a first image) in the state that thesubnetwork is displayed.

In the object-between-network display method as mentioned above, it ispreferable that when the first image is displayed, figures and sizes ofthe object display domains in the display areas are standardized inaccordance with figures and sizes of the display areas.

This feature makes it possible to provide a display screen easier tosee.

In the object-between-network display method as mentioned above, it ispreferable that when the first image is displayed, first, the pluralityof objects are displayed, and then it is displayed that the plurality ofobjects are interconnected with wirings in which a direction of flow ofdata or control is repeatedly displayed in units of predeterminedsegments.

An adoption of such a wiring makes it possible, even in the event thatan object is out of a display screen, to readily determine as to whichside of the wiring input or output exists at. It is acceptable thatafter the wiring, such a wire is replaced by the usual wire, forexample, a wire in which arrows are given for only one edge or bothedges of the wire.

In the object-between-network display method as mentioned above, it ispreferable that when the first image is displayed, in wirings consistingof a central wire and edge wires extended along both sides of thecentral wire, each of the edge wire having a display aspect differentfrom the central wire, there is provided such a display of wiring thatof the intersecting wirings, with respect to wirings each representativeof a same flow of data or control, the central wire-to-central wire arecontinued, and with respect to wirings each representative of a mutuallydifferent flow of data or control, the central wire of one of thewirings is divided into parts at a position contacting with or adjacentto the edge wires of another wiring.

An adoption of such a wiring makes it possible to readily determine asto whether the intersecting wires are interconnected or simply crosseach other.

To attain the above-mentioned object, according to the presentinvention, there is provided a first object-oriented programmingsupporting apparatus for coupling a plurality of objects, each havingdata and operations, with one another in accordance with an instruction,said object-oriented programming supporting apparatus comprising:

display means for displaying objects each represented by a blockrepresentative of a main frame of an object, a data output terminal fortransferring data of the object to another object, a data input terminalfor receiving data from another object, a message terminal for issuing amessage to make a request for processing to another object, and a methodterminal for receiving a processing request from another object toexecute a method, the object being represented by a hierarchicalstructure which permits one or a plurality of objects to exist in asingle object, and in addition displays a wiring for coupling terminalsof a plurality of objects;

object coupling means for constructing a coupling structure among aplurality of objects in accordance with an instruction for couplingterminals of the plurality of objects through a wiring;

hierarchical structure construction means for constructing ahierarchical structure of objects; and

a handler for instructing a wiring for coupling among objects to saidobject coupling means, and in addition for instructing a position of anobject on the hierarchical structure to said hierarchical structureconstruction means,

wherein said hierarchical structure construction means has means forproducing a duplicate object of a substantial object designated inaccordance with an instruction from said handler, and for disposing theduplicate object at a hierarchy different from a hierarchy at which thesubstantial object is disposed, and

said object coupling means receives from said handler an instruction asto a wiring between the duplicate object and another object in thewiring of the hierarchical structure in which the duplicate object isdisposed, and constructs a coupling structure in which the duplicateobject and the associated substantial object are provided in the form ofa united object.

The feature such that the duplicate object is built, and a couplingstructure, in which the duplicate object and the associated substantialobject are provided in the form of a united object, is constructed,makes it possible to arbitrarily dispose one object at desired pluralhierarchies to conduct a wiring (an instruction of coupling), therebymaking it easy to conduct a wiring among objects located at mutuallydifferent hierarchies and also making it possible to provide a displayeasy to see visually.

To attain the above-mentioned object, according to the presentinvention, there is provided a second object-oriented programmingsupporting apparatus for coupling a plurality of objects, each havingdata and operations, with one another in accordance with an instruction,said object-oriented programming supporting apparatus comprising:

display means for displaying objects each represented by a blockrepresentative of a main frame of an object, a data output terminal fortransferring data of the object to another object, a data input terminalfor receiving data from another object, a message terminal for issuing amessage to make a request for processing to another object, and a methodterminal for receiving a processing request from another object toexecute a method, the object being represented by a hierarchicalstructure which permits one or a plurality of objects to exist in asingle object, and in addition displays a wiring for coupling terminalsof a plurality of objects;

object coupling means for constructing a coupling structure among aplurality of objects in accordance with an instruction for couplingterminals of the plurality of objects through a wiring;

hierarchical structure construction means for constructing ahierarchical structure of objects; and

a handler for instructing a wiring for coupling among objects to saidobject coupling means, and in addition for instructing a position of anobject on the hierarchical structure to said hierarchical structureconstruction means,

wherein said object coupling means releases a coupling structure of theobject before a replacement with another object in accordance with aninstruction from said handler, and causes the object after thereplacement to succeed to the coupling structure of the object beforethe replacement with another object, and

said hierarchical structure construction means disposes the object afterthe replacement, instead of the object before the replacement, at ahierarchy at which the object before the replacement is disposed.

For a replacement of objects, usually, first, a wiring of an objectbefore a replacement will be removed, and then a new wiring will beconducted for a new object by which the object before a replacement isreplaced. On the contrary, according to the present invention, thewiring (a coupling relation) of the object before a replacement ismaintained for the new object after a replacement. This feature makes itpossible to save trouble for a wiring between the new object after areplacement and other object, thereby making it very easy to conduct areplacement of objects and as a result making the object-orientedprogramming easy.

To attain the above-mentioned object, according to the presentinvention, there is provided a third object-oriented programmingsupporting apparatus for coupling a plurality of objects, each havingdata and operations, with one another in accordance with an instruction,said object-oriented programming supporting apparatus comprising:

display means for displaying objects each represented by a blockrepresentative of a main frame of an object, a data output terminal fortransferring data of the object to another object, a data input terminalfor receiving data from another object, a message terminal for issuing amessage to make a request for processing to another object, and a methodterminal for receiving a processing request from another object toexecute a method, the object being represented by a hierarchicalstructure which permits one or a plurality of objects to exist in asingle object, and in addition displays a wiring for coupling terminalsof a plurality of objects;

object coupling means for constructing a coupling structure among aplurality of objects in accordance with an instruction for couplingterminals of the plurality of objects through a wiring;

hierarchical structure construction means for constructing ahierarchical structure of objects; and

a handler for instructing a wiring for coupling among objects to saidobject coupling means, and in addition for instructing a position of anobject on the hierarchical structure to said hierarchical structureconstruction means,

wherein said hierarchical structure construction means is in response toan instruction from said handler such that a plurality of objects fromamong the objects disposed at a predetermined hierarchy are designatedand the plurality of objects are rearranged on the lower-order hierarchyby one stage, and rearranges the plurality of objects on the lower-orderhierarchy by one stage, and produces and arranges an object includingthe plurality of objects on the predetermined hierarchy in such a mannerthat a coupling structure among the plurality of objects and a couplingstructure among the plurality of objects and objects other than theplurality of objects are maintained.

If it is permitted, as in the present invention described above, that aplurality of objects is rearranged in a different hierarchy while thewiring (coupling relation) is kept as it is, it is possible to rearrangea program while the program is made up. Further, since the part replacedby a hierarchy serves as one object, it is possible to reuse the objectof interest as a program part.

To attain the above-mentioned object, according to the presentinvention, there is provided a fourth object-oriented programmingsupporting apparatus for coupling a plurality of objects, each havingdata and operations, with one another in accordance with an instruction,said object-oriented programming supporting apparatus comprising:

display means for displaying objects each represented by a blockrepresentative of a main frame of an object, a data output terminal fortransferring data of the object to another object, a data input terminalfor receiving data from another object, a message terminal for issuing amessage to make a request for processing to another object, and a methodterminal for receiving a processing request from another object toexecute a method, the object being represented by a hierarchicalstructure which permits one or a plurality of objects to exist in asingle object, and in addition displays a wiring for coupling terminalsof a plurality of objects;

object coupling means for constructing a coupling structure among aplurality of objects in accordance with an instruction for couplingterminals of the plurality of objects through a wiring;

hierarchical structure construction means for constructing ahierarchical structure of objects; and

a handler for instructing a wiring for coupling among objects to saidobject coupling means, and in addition for instructing a position of anobject on the hierarchical structure to said hierarchical structureconstruction means,

wherein said display means has, in case of existence of a plurality ofmethod terminals connected to one message terminal designated inaccordance with an instruction through said handler, means fordisplaying a list indicative of an execution sequence of a plurality ofmethods associated with the plurality of method terminals, and

said object coupling means has means for reconstructing a couplingstructure in which the execution sequence of the plurality of methodsappearing at the list displayed on said display means are altered inaccordance with an instruction by said handler.

According to the fourth object-oriented programming supportingapparatus, it is possible to readily and exactly know an executionsequence of a plurality of methods for one message, and also possible toreadily alter the execution sequence.

As to the object-oriented programming supporting apparatuses, thereexists a fifth object-oriented programming supporting apparatus. Thefifth object-oriented programming supporting apparatus will be describedlater.

To attain the above-mentioned object, according to the presentinvention, there is provided a first program storage medium for use inan object-oriented programming, the program storage medium being adaptedfor storing therein a program to support an object-oriented programmingfor coupling a plurality of objects, each having data and operations,with one another,

wherein each of said objects is represented by a block representative ofa main frame of an object, a data output terminal for transferring dataof the object to another object, a data input terminal for receivingdata from another object, a message terminal for issuing a message tomake a request for processing to another object, and a method terminalfor receiving a processing request from another object to execute amethod, the object being represented by a hierarchical structure whichpermits one or a plurality of objects to exist in a single object, andan instruction for coupling terminals of the plurality of objectsthrough a wiring is given,

said program includes: object coupling means for constructing a couplingstructure among a plurality of objects in accordance with theinstruction for coupling terminals of the plurality of objects through awiring; and hierarchical structure construction means for constructing ahierarchical structure of objects, and

said program storage medium stores such a program that said hierarchicalstructure construction means has means for producing a duplicate objectof a substantial object designated in accordance with an instructionfrom said handler, and for disposing the duplicate object at a hierarchydifferent from a hierarchy at which the substantial object is disposed,and said object coupling means receives from said handler an instructionas to a wiring between the duplicate object and another object in thewiring of the hierarchical structure in which the duplicate object isdisposed, and constructs a coupling structure in which the duplicateobject and the associated substantial object are provided in the form ofa united object.

To attain the above-mentioned object, according to the presentinvention, there is provided a second program storage medium for use inan object-oriented programming, the program storage medium being adaptedfor storing therein a program to support an object-oriented programmingfor coupling a plurality of objects, each having data and operations,with one another,

wherein each of said objects is represented by a block representative ofa main frame of an object, a data output terminal for transferring dataof the object to another object, a data input terminal for receivingdata from another object, a message terminal for issuing a message tomake a request for processing to another object, and a method terminalfor receiving a processing request from another object to execute amethod, the object being represented by a hierarchical structure whichpermits one or a plurality of objects to exist in a single object, andan instruction for coupling terminals of the plurality of objectsthrough a wiring is given,

said program includes: object coupling means for constructing a couplingstructure among a plurality of objects in accordance with theinstruction for coupling terminals of the plurality of objects through awiring; and hierarchical structure construction means for constructing ahierarchical structure of objects, and

said program storage medium stores such a program that said objectcoupling means releases a coupling structure of the object before areplacement with another object in accordance with an instruction forthe replacement of objects, and causes the object after the replacementto succeed to the coupling structure of the object before thereplacement with another object, and said hierarchical structureconstruction means disposes the object after the replacement, instead ofthe object before the replacement, at a hierarchy at which the objectbefore the replacement is disposed.

To attain the above-mentioned object, according to the presentinvention, there is provided a third program storage medium for use inan object-oriented programming, the program storage medium being adaptedfor storing therein a program to support an object-oriented programmingfor coupling a plurality of objects, each having data and operations,with one another,

wherein each of said objects is represented by a block representative ofa main frame of an object, a data output terminal for transferring dataof the object to another object, a data input terminal for receivingdata from another object, a message terminal for issuing a message tomake a request for processing to another object, and a method terminalfor receiving a processing request from another object to execute amethod, the object being represented by a hierarchical structure whichpermits one or a plurality of objects to exist in a single object, andan instruction for coupling terminals of the plurality of objectsthrough a wiring is given,

said program includes: object coupling means for constructing a couplingstructure among a plurality of objects in accordance with theinstruction for coupling terminals of the plurality of objects through awiring; and hierarchical structure construction means for constructing ahierarchical structure of objects, and

said program storage medium stores such a program that said hierarchicalstructure construction means is in response to an instruction such thata plurality of objects from among the objects disposed at apredetermined hierarchy are designated and the plurality of objects arerearranged on the lower-order hierarchy by one stage, and rearranges theplurality of objects on the lower-order hierarchy by one stage, andproduces and arranges an object including the plurality of objects onthe predetermined hierarchy in such a manner that a coupling structureamong the plurality of objects and a coupling structure among theplurality of objects and objects other than the plurality of objects aremaintained.

To attain the above-mentioned object, according to the presentinvention, there is provided a fourth program storage medium for use inan object-oriented programming, the program storage medium being adaptedfor storing therein a program to support an object-oriented programmingfor coupling a plurality of objects, each having data and operations,with one another,

wherein each of said objects is represented by a block representative ofa main frame of an object, a data output terminal for transferring dataof the object to another object, a data input terminal for receivingdata from another object, a message terminal for issuing a message tomake a request for processing to another object, and a method terminalfor receiving a processing request from another object to execute amethod, the object being represented by a hierarchical structure whichpermits one or a plurality of objects to exist in a single object, andan instruction for coupling terminals of the plurality of objectsthrough a wiring is given,

said program includes: object coupling means for constructing a couplingstructure among a plurality of objects in accordance with theinstruction for coupling terminals of the plurality of objects through awiring; and hierarchical structure construction means for constructing ahierarchical structure of objects, and

said program storage medium stores such a program that said objectcoupling means has, in case of existence of a plurality of methodterminals connected to one message terminal designated, means for makingup a list indicative of an execution sequence of a plurality of methodsassociated with the plurality of method terminals, and means forreconstructing a coupling structure in which the execution sequence ofthe plurality of methods is altered in accordance with an alterationinstruction of the execution sequence of the plurality of methodsappearing at the list.

Of component storage mediums according to the present invention, thereis provided a first component storage medium for storing a componentwhich serves as one object in combination with a predetermined existingsoftware, said component including a method of issuing an event of thepredetermined existing software through a firing by a message issued inother object.

According to such a component, there is provided such a form that anexisting software is “included” or “involved”, and thus it possible totake in an existing software in the form of an object, regardless of astructure of the existing software, or without a modification of theexisting software, thereby specially improving a reuse of the existingsoftware.

In this case, it is preferable that said component further includestogether with said method a message for informing other object of thatsaid event is issued through executing said method.

This feature makes it possible to perform an operation on a linkingbasis by a coupling between the method and the message.

Of component storage mediums according to the present invention, thereis provided a second component storage medium for storing a componentwhich serves as one object in combination with a predetermined existingsoftware, said component including a message for informing other object,upon receipt of occurrence of a predetermined event of the predeterminedexisting software, of that the predetermined event is generated.

According to such a component, there is provided such a form that anexisting software is “included” or “involved”, and thus it possible toimplement, independently of an advancement of the existing softwareitself, such an advanced function that when the event for the existingsoftware occurs, a method of other object is executed through workingtogether.

Further, according to the present invention, there is provided acomponent builder apparatus comprising:

a first handler for selectively indicating making of methods andmessages;

a second handler for inputting an instruction of an issue of a desiredevent of a predetermined existing software; and

a component builder means for building a component which serves as oneobject in combination with said existing software, said componentbuilder means serving, when making of a method is instructed by anoperation of said first handler and a predetermined event of theexisting software is issued by an operation of said second handler, tomake on the component a method which fires with a message issued byanother object and issues the event, and serving, when making of amessage is instructed by an operation of said first handler and an issueof a predetermined event of the existing software is instructed by anoperation of said second handler, in response to an occurrence of theevent, to make on the component a message for informing other objects ofthe fact that the event occurred.

The use of the component builder apparatus mentioned above makes itpossible to easily build on an interactive basis the components to bestored in the above-mentioned first and second component storagemediums, without a requirement of a deep knowledge as to a programmingfor operators or users.

To attain the above-mentioned object, according to the presentinvention, of the object-oriented programming supporting apparatuses,there is provided a fifth object-oriented programming supportingapparatus comprising:

a component file for storing therein a component which serves as oneobject in combination with a predetermined existing software, saidcomponent including a method of issuing an event of the predeterminedexisting software through a firing by a message issued in other object,and a message for informing other object of that the event is issuedthrough executing said method, and said component being stored in saidcomponent file with respect to one or more existing softwares;

a handier for inputting an instruction of an issue of the event as tothe existing software;

an event log file for storing a list for the events as to one or moreexisting softwares, which are sequentially issued in accordance with anoperation of said handler; and

a component coupling means for taking out sequentially the events fromsaid event log file to combine a message of a component including themessage for informing other object of that the same event as that takenout before is issued and a method of a component including the method ofissuing the same event as that taken out now.

According to the fifth object-oriented programming supporting apparatus,a sequential indication of an issue of a plurality of events of one ormore existing softwares in the sequence of an actual operation desiredmay couple the message and the method between objects “involving” theexisting softwares in the components. Thus, it is possible to implementan automatic operation of a plurality of events of the existingsoftware.

BRIEF DESCRIPTION OF THE DRAWINGS

FIG. 1 is a perspective illustration of a computer system including anobject-oriented programming apparatus according to an embodiment of thepresent invention;

FIG. 2 is a block diagram of an object ware programming systemimplemented in the computer system shown in FIG. 1;

FIG. 3 is a typical illustration showing a first example of a softwaresystem implemented within the computer system shown in FIG. 1;

FIG. 4 is a typical illustration showing an example of a data structureof an output instruction bus portion of an object A and an inputinstruction bus portion of an object B shown in FIG. 3;

FIGS. 5(A) and (B) are flowcharts useful for understanding processingsfor issue of a message;

FIG. 6 is a flowchart useful for understanding processings of an outputinstruction bus portion generating unit of an object coupling unit shownin FIG. 3;

FIG. 7 is a flowchart useful for understanding processings of an inputinstruction bus portion generating unit of an object coupling unit shownin FIG. 3;

FIG. 8 is a flowchart useful for understanding processings of aninstruction coupling unit of an object coupling unit shown in FIG. 3;

FIG. 9 is a typical illustration showing an example of a data structureof a data element list of the object A shown in FIG. 3;

FIG. 10 is a flowchart useful for understanding processings of a dataelement list generating unit of the object coupling unit shown in FIG.3;

FIG. 11 is a typical illustration showing an example of a data structureof a pointer element list of the object B shown in FIG. 3;

FIG. 12 is a flowchart useful for understanding processings of a pointerelement list generating unit of the object coupling unit shown in FIG.3;

FIG. 13 is a typical illustration showing a structure after an executionof processings of a data coupling unit of the object coupling unit shownin FIG. 3;

FIG. 14 is a flowchart useful for understanding processings of a datacoupling unit of the object coupling unit shown in FIG. 3;

FIG. 15 is a typical illustration showing a second example of a softwaresystem implemented within the computer system shown in FIG. 1;

FIG. 16 is a typical illustration showing a third example of a softwaresystem implemented within the computer system shown in FIG. 1;

FIG. 17 is a typical illustration showing a fourth example of a softwaresystem implemented within the computer system shown in FIG. 1;

FIG. 18 is a typical illustration showing a fifth example of a softwaresystem implemented within the computer system shown in FIG. 1;

FIG. 19 is a typical illustration showing a part of the data structureof objects A shown in FIGS. 15 to 18;

FIG. 20 is a flowchart useful for understanding an example of processingfor issue of a message of an object A;

FIG. 21 is a flowchart useful for understanding a first example of apartial processing of an object B;

FIG. 22 is a flowchart useful for understanding a second example of apartial processing of an object B;

FIG. 23 is a flowchart useful for understanding a third example of apartial processing of an object B;

FIG. 24 is a flowchart useful for understanding a fourth example of apartial processing of an object B;

FIG. 25 is a flowchart useful for understanding a fifth example of apartial processing of an object B;

FIG. 26 is a flowchart useful for understanding a sixth example of apartial processing of an object B;

FIG. 27 is a flowchart useful for understanding another example ofprocessing for issue of a message of an object A, which is differentfrom the example of that shown in FIG. 20;

FIG. 28 is a flowchart useful for understanding a seventh example of apartial processing of an object B;

FIG. 29 is a flowchart useful for understanding a eighth example of apartial processing of an object B;

FIG. 30 is a flowchart useful for understanding a ninth example of apartial processing of an object B;

FIG. 31 is a flowchart useful for understanding a tenth example of apartial processing of an object B;

FIG. 32 is a flowchart useful for understanding processings of an inputinstruction tag table generating unit of an object coupling unit shownin FIG. 15;

FIG. 33 is a flowchart useful for understanding processings of an outputinstruction tag table generating unit of an object coupling unit shownin FIG. 16;

FIG. 34 is a flowchart useful for understanding processings of an inputdata tag table generating unit of an object coupling unit shown in FIG.17;

FIG. 35 is a flowchart useful for understanding processings of an outputdata tag table generating unit of an object coupling unit show in FIG.18;

FIG. 36 is a typical illustration of a display screen useful forunderstanding an object-between-network display method according to anembodiment of the present invention;

FIG. 37 is an explanatory view useful for understanding hierarchicalnetworks;

FIGS. 38(A) and 38(B) are illustrations each showing by way of example adisplay image consisting of a lot of objects and wirings;

FIGS. 39(A) and 39(B) are illustrations each showing by way of example adisplay image of a subnetwork;

FIGS. 40(A) and 40(B) are illustrations each showing an alternativeembodiment of the display method of the subnetwork;

FIGS. 41(A), 41(B) and 41(C) are illustrations each showing by way ofexample a display image having a display area in which a plurality ofmeasures are coupled with each other;

FIG. 42 is an illustration showing by way of example a display imagecharacterized by a display method of wiring;

FIGS. 43(A) and 43(B) are illustrations each showing an alternativeembodiment of the display method of the wiring;

FIGS. 44(A) 44(B) and 44(C) are illustrations useful for understanding aprocedure for producing a display area for displaying a network of anobject;

FIG. 45 is an illustration showing a state in which an object isdisposed on a display screen by users;

FIGS. 46(A) and 46(B) are illustrations each showing a state in which awiring among objects disposed on a display screen is performed by users;

FIGS. 47(A) and 47(B) are illustrations showing by way of exampledisplay screens of an object-between-network before and after display ofthe subnetwork, respectively;

FIG. 48 is a flowchart useful for understanding a procedure forswitching from the display of FIG. 47(A) to the display of FIG. 47(B);

FIGS. 49(A), 49(B) and 49(C) are explanatory views useful forunderstanding a procedure of a subnetwork display;

FIG. 50 is a flowchart useful for understanding a procedure of thesubnetwork display;

FIGS. 51(A), 51(B) and 51(C) are typical illustrations each showing anembodiment in which a display area representative of an object is formedwith a single measure or a plurality of measures coupled with oneanother;

FIGS. 52(A) and 52(B) are illustrations useful for understanding by wayof example a display method of wiring;

FIG. 53 is a typical illustration showing by way of example a display ofwiring;

FIG. 54 is a flowchart useful for understanding a procedure of executingthe wiring shown in FIG. 53;

FIG. 55 is a flowchart useful for understanding an alternativeembodiment of a procedure of executing the wiring;

FIG. 56 is a flowchart useful for understanding a further alternativeembodiment of a procedure of executing the wiring;

FIG. 57 is a flowchart useful for understanding a still furtheralternative embodiment of a procedure of executing the wiring;

FIGS. 58-62 are typical illustrations each showing a result obtainedfrom an execution of wiring according to the wiring procedures shown inFIGS. 54-56; and

FIGS. 63(A), 63(B) and 63(C) are typical illustrations each showing aresult obtained from an execution of wiring according to the wiringprocedures shown in FIGS. 55-57.

FIG. 64 is a schematic diagram showing a basic structure of anobject-oriented programming supporting apparatus and a program storagemedium for use in an object-oriented programming according to anembodiment of the present invention;

FIG. 65 is a conceptual view showing exemplarily an involving relationamong objects;

FIG. 66 is a typical illustration showing a connecting relation amongobjects for defining a hierarchical structure;

FIG. 67 is a typical illustration showing a pointer for determining aconnecting relation of a certain object to another object;

FIG. 68 is a typical illustration showing one of the bus elementsconstituting the bus element list to be connected to the “pointers tobuses” shown in FIG. 67;

FIG. 69 is a typical illustration showing one of the cable elementsconstituting the cable element list to be connected to the “pointers tocables” shown in FIG. 67;

FIG. 70 is a typical illustration showing exemplarily a wiring amongobjects;

FIG. 71 is a conceptual view of a duplicate object;

FIG. 72 is a typical illustration showing a hierarchical structure(object tree) of the objects shown in FIG. 71;

FIG. 73 is a flowchart useful for understanding a building process forthe duplicate object;

FIG. 74 is a typical illustration showing a connecting relation betweenthe substantial object (original) and the duplicate object (copy)

FIG. 75 is a conceptual view showing a coupling relation of objectsbefore a replacement of objects;

FIG. 76 is a typical illustration showing an object tree concerning theobjects shown in FIG. 75;

FIG. 77 is a conceptual view showing a coupling relation of objectsafter a replacement of objects;

FIG. 78 is a typical illustration showing a part of the object treeafter a replacement of objects;

FIG. 79 is a flowchart useful for understanding an object replacingprocess;

FIG. 80 is a typical illustration showing a part of the cable elementlist connected to an object A;

FIG. 81 is a conceptual view showing a coupling relation among objectsbefore a movement of objects;

FIG. 82 is a typical illustration showing an object tree concerning theobjects shown in FIG. 81;

FIG. 83 is a conceptual view showing a coupling relation of objectsafter a movement of objects;

FIG. 84 is a typical illustration showing an object tree concerning theobjects shown in FIG. 83;

FIG. 85 is a flowchart useful for understanding a processing for amovement of objects and a change of wiring of objects;

FIG. 86 is a typical illustration showing a state of an alteration of anobject tree;

FIG. 87 is a typical illustration showing a part of the cable elementlist connected to an object A;

FIG. 88 is an explanatory view useful for understanding a movement ofwiring to a new object;

FIG. 89 is a typical illustration of a bus for use in wiring, the busbeing built on an object F;

FIG. 90 is a typical illustration showing a state of a change of anobject in wiring from an object (object D) inside a new object (objectF) to the object F;

FIG. 91 is a typical illustration showing exemplarily a wiring amongobjects:

FIG. 92 is a typical illustration showing a cable element list giving adefinition of the wiring shown in FIG. 91;

FIG. 93 is a flowchart useful for understanding processings for adisplay of an execution sequence for methods and an alteration of theexecution sequence for the methods;

FIG. 94 is a typical illustration showing a cable list element list;

FIG. 95 is a view exemplarily showing a cable list displayed on adisplay screen 102 a;

FIG. 96 is a typical illustration showing a state in which anarrangement sequence of the cable elements arranged on the cable elementlist is altered;

FIG. 97 is a typical illustration showing a cable element list in whichan arrangement sequence of the cable elements has been altered;

FIG. 98 is a typical illustration showing a state in which anarrangement sequence of the cable list elements arranged on the cablelist element list is altered;

FIG. 99 is a typical illustration showing a cable list element list inwhich an arrangement sequence of the cable list elements has beenaltered;

FIG. 100 is a view showing a cable list in which an arrangement sequencehas been altered;

FIG. 101 is a typical illustration showing an embodiment of a component“including” an existing software having a graphical user interface;

FIG. 102 is a typical illustration showing an alternative embodiment ofa component “including” an existing software having a graphical userinterface;

FIG. 103 is a typical illustration showing a further alternativeembodiment of a component “including” an existing software having agraphical user interface;

FIG. 104 is a typical illustration showing a structure of an eventprocessing portion of the window management section shown in FIG. 103;

FIG. 105 is a typical illustration showing a structure of an eventmonitor portion of the component A shown in FIG. 103;

FIG. 106 is a basic construction view of a component builder apparatusaccording to the present invention;

FIG. 107 is a typical illustration of an embodiment of a componentbuilder apparatus according to the present invention;

FIG. 108 is a flowchart useful for understanding processings of buildinga component using a component builder apparatus;

FIG. 109 is a construction view of an object ware programming system inwhich structural elements corresponding to the embodiment of the fifthobject-oriented programming supporting apparatus according to thepresent invention are added to the object ware programming system shownin FIG. 2;

FIG. 110 is a flowchart useful for understanding an operation of acomponent coupling unit:

FIG. 111 is a flowchart useful for understanding an operation of acomponent coupling unit;

FIG. 112 is a conceptual view showing a state in which an existing software is “included” in a component;

FIG. 113 is a view showing a table for definition items to give variousdefinitions shown in FIG. 112; and

FIG. 114 is a view exemplarily showing images displayed on a displayscreen 102 a when definitions are given.

DESCRIPTION OF THE PREFERRED EMBODIMENTS

Hereinafter, there will be described embodiments of the presentinvention.

First, there will be explained an outline of an object ware programmingsystem in which embodiments according to the present invention are puttogether, and then each individual embodiment will be explained.

FIG. 1 is a perspective illustration of a computer system including eachindividual embodiment of the present invention of an object-orientedprogramming apparatus, an object-oriented programming supportingapparatus, a component builder apparatus, an object-oriented programstorage medium, a program storage medium for use in an object-orientedprogramming, a component storage medium, and an object-between-networkdisplay method.

In FIG. 1, a computer system 100 comprises: a main body unit 101incorporating thereinto a CPU, an MO (magneto-optical disc) drive andthe like: an image display unit 102 for displaying on its display screen102 a images in accordance with an instruction from the main body unit101; a keyboard 103 for inputting various types of information to thecomputer system 100; a mouse 104 for designating a desired position onthe display screen 102 a of the display 102; and a storage unit 105 forstoring objects, object coupling programs and the like which will bedescribed hereinafter.

A development of programs can be implemented by the computer system 100shown in FIG. 1. It is acceptable that programs, which are developed byanother same type of computer system, are stored in a portable type ofrecording medium such as an MO (magneto-optical disc) 110, and the MO110 is loaded into the computer system 100 shown in FIG. 1 so that thedeveloped programs can be inputted into the computer system 100.Likewise, it is possible to transfer the programs developed with the useof the computer system 100 shown in FIG. 1 through the MO 110 to anothercomputer system.

FIG. 2 is a block diagram of an object ware programming systemimplemented in the computer system shown in FIG. 1.

An object ware programming system 120 comprises an object builder unit121 for building objects and/or a component which “includes” existingsoftwares, an interobject wiring editor unit 122 for displaying a wiringamong objects (a coupling relation) to perform an editing, and aninterpreter unit 123 for connecting and running objects (including anobject consisting of a combination of the existing software and thecomponent), which are generated in the object builder unit 121, inaccordance with the wiring among objects, or the coupling relation,which is defined by the interobject wiring editor unit 122.

While the object builder unit 121 can build directly an object throughan operation of the keyboard 103 or the mouse 104 in the computer system100 shown in FIG. 1, the object ware programming system 120 is providedwith an existing application file 131 for storing existing various typesof application programs (hereinafter, it may happen that the applicationprogram is referred to simply as an application), which have beendeveloped with various types of program languages. And thus the objectbuilder unit 121 may also build a component which serves as one object,“involving” the existing application stored in the existing applicationfile 131, together with the existing application. It is to be noted thatthe object-is expressed including an object consisting of a combinationof the above-mentioned component and the existing application “involved”in the component, unless we note the particular.

The object built in the object builder unit 121 is stored in an objectdata file 132 and a running object file 133. The object data file 132stores therein, of data representative of the object built in the objectbuilder unit 121, data necessary for a display of objects and a wiring(definition of the coupling relation) among objects. On the other hand,the running object file 133 stores therein running objects in which theobject built in the object builder unit 121 is converted into a runningformat of one.

The interobject wiring editor unit 122 displays, upon receipt of data asto an object stored in the object data file 132, the object on thedisplay screen 102 a of the image display unit 102 shown in FIG. 1, anddefines a coupling state among objects in accordance with an operationof the keyboard 103 or the mouse 104. As will be described, a display onthe display screen 102 a is given with a display style close to that ofan LSI (Large Scale Integrated Circuit) as the hardware, and adefinition of the coupling state among objects is performed in such asense that terminals of such a plurality of LSI's are wired by signallines. Hence, hereinafter, it may happen that the object is referred toas “LSI”, and a definition of the coupling state among objects isreferred to as “wiring”.

When a wiring among objects is performed by the interobject wiringeditor unit 122, an interobject wiring data file 134 is used for thepurpose of saving an intermediate result of the wiring and displayingthe intermediate result through loading. The interobject wiring datafile 134 stores wiring information which is convenient as a man-machineinterface. For example, in the system according to present embodiment,there is provided a hierarchical structure of objects for the purpose ofeasy understanding of wiring for users. The interobject wiring data file134 stores also data as to such a hierarchical structure.

In this manner, when the interobject wiring editor unit 122 hascompleted the wiring, an interpreter use wiring data file 135 storesinformation (hereinafter, it is referred to as “wiring data”)representative of a coupling state among objects. When the interpreteruse wiring data file 135 stores the wiring data, information simplyavailable for user's understanding, for example, information of thehierarchical structure of objects, is omitted, and only the wiring data,which is necessary for actuation of the object (software), is extractedand stored in the interpreter use wiring data file 135.

In the interpreter unit 123, the running objects stored in the runningobject file 133 are coupled and executed in accordance with the wiringdata stored in the interpreter use wiring data file 135.

Hereinafter, the respective embodiments will be described. As a matterof convenience of explanation and for better understanding of theinvention, there will be described, taking into account of thearrangement of the object ware programming system 120 shown in FIG. 2,first, the embodiment concerning the interpreter unit 123 and theassociated periphery, then the embodiment concerning the interobjectwiring editor unit 122 and the associated periphery, and finally theembodiment concerning the object builder unit 121 and the associatedperiphery.

First, there will be described the embodiment concerning the interpreterunit 123 and the associated periphery.

FIG. 3 is a typical illustration showing a first example of a softwaresystem implemented within the computer system shown in FIG. 1. Nowreferring to FIG. 3, there will be described a schematic construction ofa first object-oriented programming apparatus and a firstobject-oriented program storage medium according to one embodiment ofthe present invention, and then referring to FIG. 4 et seq. there willbe described details of those.

A corresponding relation between the software system shown in FIG. 3 andthe present invention is as follows. That is, the storage unit 105 (FIG.1), in which the software system shown in FIG. 3 is stored, correspondsto the first object-oriented program storage medium according to anembodiment of the present invention, and a combination of the hardwareof the computer system 100 shown in FIG. 1 and an object coupling unit10 which is in a state operable under the computer system 100corresponds to the first object-oriented programming apparatus.Incidentally, when the software system shown in FIG. 3 is downloadedonto the MO 110, the MO 110 also corresponds to an example of the firstobject-oriented program storage medium according to an embodiment of thepresent invention.

Now, let us consider typically two objects A and B each comprising dataand processing (method).

An output instruction bus portion generating unit 11, in the objectcoupling unit 10, generates a portion which forms a core of an outputinstruction bus portion for performing an issue process of a message ofan object (for example object A) to another object (for example objectB).

An input instruction bus portion generating unit 12, in the objectcoupling unit 10, generates an input instruction bus portion of anobject (for example object B). The input instruction bus portionreceives a message directed to the self object (for example object B)issued by another object (for example object A), and activates a methodof the self object (for example object B), which method is associatedwith the received message.

Incidentally, according to the present embodiment, the outputinstruction bus portion generating unit 11 and the input instruction busportion generating unit 12 are provided in the object coupling unit 10.However, it is acceptable that the objects A and B have originallystructures corresponding to the output instruction bus portion or theinput instruction bus portion. Alternatively, it is acceptable that theobject coupling unit 10 does not always comprise the output instructionbus portion generating unit 11 and the input instruction bus portiongenerating unit 12.

An instruction coupling unit 13, in the object coupling unit 10, permitsa message to be transferred between objects (objects A and B) by meansof giving an association of a message of the object A with a method ofobject B.

A data element list generating unit 14, in the object coupling unit 10,generates a data element list of an object (typically object A) in whichpointers to data storage areas for storing therein data are arranged.

Likewise, a pointer element list generating unit 15, in the objectcoupling unit 10, generates a pointer element list of an object (objectB) in which pointers to pointer storage areas for storing thereinpointers to data are arranged.

A data coupling unit 16, in the object coupling unit 10, permits amessage to be transferred between objects A and B by means of writingpointers, which are arranged in the data element list produced by thedata element list generating unit 14, into pointer storage areasindicated by the pointers arranged in the pointer element list of theobject B produced by the pointer element list generating unit 15.

FIG. 4 is a typical illustration showing an example of a data structureof an output instruction bus portion of an object A and an inputinstruction bus portion of an object B shown in FIG. 3.

The object A has a message table consisting of an arrangement of amaximum number MA_(A MAX) of messages of the object A. The message tablestores pointers to a method element list, which will be describedhereinafter, corresponding to a message number MA_(A) of each message(where a message number is expressed by MA and it is expressed by asuffix A that the message number is of a message of the object A).

The method element list consists of an arrangement of a single or aplurality of method elements. Each of the method elements comprises amethod number ME for specifying a method, a pointer to an object inwhich the method specified by the method number ME is executed, and apointer to the subsequent method element. Here, the method number isexpressed by an ME, and the object in which the method specified by themethod number ME is executed is expressed by a suffix. Specifically, theuppermost stage of the method element shown in FIG. 3 stores a methodnumber ME_(B) of a method of the object B, and a pointer to the objectB.

The last stage of method element ME_(B) in FIG. 3 stores a pointer tothe subsequent method element data (referred to as “null”) indicatingthat the method element is of the final stage itself and there is nomethod element after itself.

The method element lists are generated at the maximum by a numbercorresponding to the number of messages of the object A. Each of themethod element lists corresponds to the associated message of the objectA. When the message is issued, the associated method element list isreferred to.

While a one method element list corresponds to a one message on aone-to-one basis, it is not always arranged that method elementsarranged on a one method element list are the only ones related to acertain object (e.g. the object B) and it is permitted that methodelements related to a plurality of methods of a plurality of objects arearranged on a one method element list.

While the above-mentioned description explains a construction of theoutput instruction bus unit of the object A, the output instruction busunit is provided for each of the objects which issue messages to anotherobject.

The object B has a method table consisting of an arrangement of amaximum ME_(B MAX) of a method number ME_(B) of the object B. The methodtable stores therein a pointer to the method specified by the methodnumber ME_(B), corresponding to the method number ME_(B) of each method.

While the above-mentioned description explains a construction of theinput instruction bus unit of the object B, the input instruction busunit receives a message issued by another object, in a similar fashionto that of the output instruction bus unit, and is provided for each ofthe objects, which executes the method associated with the receivedmessage. In some cases, it happens that one object has both an outputinstruction bus unit and an input instruction bus unit.

FIG. 5 is a flowchart useful for understanding processings for an issueof a message.

When it is intended to issue a message in a certain processing inexecution in the object A, a message table is referred to so as toobtain, from a message number MA of the message intended to be issued, apointer to the method element list associated with the message numberMA_(A n), ID (step 5_1), so that the method elements arranged in themethod element list indicated by the pointer are referred to. Forexample, when the uppermost stage of the method element shown in FIG. 4is referred to, the object B indicated by a pointer stored in the methodelement referred to is called wherein a method number ME_(B) stored inthe method element serves as an argument (step 5_2). Such a messageissue processing is performed on each of the method elements arranged ina one method element list for each issue of a one message (steps 5_3,5_4).

In the object B called wherein the method number ME_(B) serves as anargument, the method number ME_(B) given in the form of an argument isobtained (step 5_5). In step 5_6 there is provided such a process thatthe method table is referred to so as to obtain a pointer to a methodspecified by the obtained method number ME_(B), and a processing of themethod indicated by the pointer is performed.

FIG. 6 is a flowchart useful for understanding processings of an outputinstruction bus portion generating unit 11 of an object coupling unit 10shown in FIG. 3.

In step 6_1, a frame of the message table having a width MA_(A MAX)shown in FIG. 4 is produced.

Incidentally, according to the present embodiment, it is so arrangedthat when the object A issues a message, a pointer of the method elementlist is identified through a message table. However, it is acceptablethat the pointer to the method element is written directly into aprocess (method) of the object A, for example, and thus in this case,there is no need to provide the message table. In other words, theprocess shown in FIG. 6, or the output instruction bus portiongenerating unit 11 shown in FIG. 3 is not always needed.

FIG. 7 is a flowchart useful for understanding processings of an inputinstruction bus portion generating unit 12 of an object coupling unit 10shown in FIG. 3.

In step 7_1, a frame of the method table having a width ME_(B MAX) shownin FIG. 4 is produced. And in step 7_2, a pointer to the methodassociated with the respective method number ME_(B) is stored in acolumn of the respective method number ME_(B) within the frame.

Incidentally, according to the present embodiment, it is so arrangedthat a pointer of the method is recognized through a method table.However, there may be no need to provide an association of the methodnumber ME_(B) with the pointer to the method in form of the messagetable. Accordingly, the process shown in FIG. 7, or the inputinstruction bus portion generating unit 12 shown in FIG. 3 is not alwaysneeded.

FIG. 8 is a flowchart useful for understanding processings of aninstruction coupling unit 13 of an object coupling unit 10 shown in FIG.3. Here, also it is assumed that the object B is typical of anotherobject.

When the method elements are produced, an operator, who operates thecomputer system shown in FIG. 1, designates a corresponding relationbetween a message and a method. This corresponding relation isdetermined by the following designations.

(a) A pointer of the object A

(b) A pointer of the object B

(c) A message number MA_(A) of the object A

(d) A method number ME_(B) of the object B

It is noted that designations of the above-noted (a) to (d) areperformed, for example, in such a manner that designations for a name ofthe object, a processing (e.g. “display on a screen the spreadsheetprogram and the spreadsheet result”) and the like are performed byclicking through an operation of a mouse 104 (cf. FIG. 1), of an icondisplayed on a display screen 102 a. More in detail, as will bedescribed later, objects are displayed in the form of an LSI, and adesignation is performed through an operation for wiring among terminalsof the LSI's using the mouse 104.

In the processing shown in FIG. 8, first, a frame of the method elementis produced (step 8_1). In step 8_2, the method number ME_(B) and thepointer of the object B are stored in the frame of the method element,so that they are added to the method element list of the associatedmessage number MA_(A) (step 8_3). That is, the pointer to the methodelement to be added is stored in the column of the pointer to the nextmethod element, of the last stage of method element arranged in themethod element list, and the “null” is stored in the column of thepointer to the next method element, of the method element to be added.The processing shown in FIG. 8 is repeatedly performed, if necessary, toproduce the method element list.

Incidentally, when none of method element is arranged in the methodelement list, according to the present embodiment, a pointer to a methodelement intended to be registered is stored in the column of theassociated message number MA_(A), of the message table.

According to the present embodiment, producing the method element listin the manner as mentioned above may provide an association of themessage of the object A with the method of the object B. This featuremakes it possible for an operator to easily grasp a correspondingrelation between the message and the method so as to readily recognizethe method associated with the message, thereby implementing a highspeed processing.

FIG. 9 is a typical illustration showing an example of a data structureof a data element list of an object A shown in FIG. 3.

The object A includes a lot of data (e.g. n pieces of data) to betransferred to the object B. The data element list generating unit 14 ofthe object coupling unit 10 shown in FIG. 3 produces the data elementlists shown in FIG. 8.

In the data element list, there are arranged the data elements, thenumber of which corresponds to the number of data (n pieces of data).Each of the data elements comprises a pointer to a data storage area forstoring therein data, and a pointer to the subsequent data element. The“null” is written into the column of the pointer to the subsequent dataelement, of the last stage of the data element. Incidentally, in FIG. 9,for example, the pointer associated with the data storage area 1 isdenoted by a pointer 1_1 but not a pointer 1. The reason this is done isso that such a pointer is distinguished from a pointer which will bedescribed later.

An “OUT_(A)” in FIG. 9 denotes a data element list number. As to thedata element lists, there is such a possibility that a large number ofdata element lists are produced in accordance with a number ofdestinations to which data are transferred. Here, the data element listsare discriminated from one another by the data element list number“OUT_(A)” (where the suffix A denotes the object A).

FIG. 10 is a flowchart useful for understanding processings of a dataelement list generating unit 14 of an object coupling unit 10 shown inFIG. 3.

In order to produce a data element list, first, a frame of data elementsis produced (step 10_1). A pointer to a data storage area is substitutedinto the frame (step 10_2). In step 10_3, the pointer to the datastorage area is added to the data element list. When the pointer to thedata storage area is added to the data element list, the pointer to thedata element list to be added is stored in the column of the pointer tothe next data element, of the data element arranged in the last stage ofthe data element list, and the “null” is stored in the column of thepointer to the next data element, of the data element list to be added.

The processing shown in FIG. 10 is repeatedly performed, if necessary,to produce the data element list.

FIG. 11 is a typical illustration showing an example of a data structureof a pointer element list of an object B shown in FIG. 3.

The object B includes a lot of segments (e.g. n pieces of segments)needed to receive data from the object A. Each of the segments has theassociated pointer storage area. The pointer storage areas 1 to n store,at the stage before data elements are coupled with pointer elements,arbitrary pointers to data, 1_3, 2_3, . . . , n_3, respectively. Thepointer element list generating unit 15 of the object coupling unit 10shown in FIG. 3 produces the pointer element list shown in FIG. 11.

In the pointer element list, there are arranged the pointer elements thenumber of which corresponds to the number of pointer storage areas (npieces of area). Each of the pointer elements comprises a pointer to theassociated pointer storage area, and a pointer to the subsequent pointerelement. Incidentally, in FIG. 11, for example, the pointer to thepointer storage area 1 is denoted by a pointer 1_2 but not a pointer 1,and an arbitrary pointer stored in the pointer storage area 1 is denotedby a pointer 1_3. The reason this is done is so that the pointersincluding the pointers stored in the data elements shown in FIG. 9 canbe distinguished from one another.

As to the pointer element lists also, in a similar fashion to that ofthe data element lists, there is such a possibility that a large numberof pointer element lists are produced in accordance with a number ofsinks which receive data. Here, the pointer element lists arediscriminated from one another by a pointer element list number “IN_(B)”(where the suffix B denotes the object B).

FIG. 12 is a flowchart useful for understanding processings of a pointerelement list generating unit 15 of an object coupling unit 10 shown inFIG. 3. This processing is similar to the processing of the data elementlist generating unit 14, which processing is shown in FIG. 10. Thus, theredundant description will be omitted.

First, a frame of pointer elements is produced (step 12_1). A pointer tothe associated pointer storage area is stored in the frame (step 12_2).In step 12_3, the pointer to the associated pointer storage area isadded to the pointer element list. The processing shown in FIG. 12 isrepeatedly performed, if necessary, to produce the pointer element list.

FIG. 13 is a typical illustration showing a structure after an executionof processings of a data coupling unit 16 of an object coupling unit 10shown in FIG. 3.

Pointer storage areas 1 to n of the object B store therein pointers 1_1to n_1 stored in the data elements arranged in the data element listsshown in FIG. 9, respectively. This structure permits the object B todirectly refer to data of the object A.

FIG. 14 is a flowchart useful for understanding processings of a datacoupling unit 16 of an object coupling unit 10 shown in FIG. 3.

In step 14_1, the pointer 1_1 stored in the data element arranged in thehead of the data element list shown in FIG. 9 is stored in a workingarea D. Likewise, in step 14_2, the pointer 1_2 stored in the pointerelement arranged in the head of the pointer element list shown in FIG.11 is stored in the working area D.

Next, in step 14_3, it is determined whether the working area D isempty, in other words, it is determined whether a mapping, which will bedescribed on step 14_5, is completed up to the last stage of dataelement arranged in the data element list shown in FIG. 9. When theworking area D is empty, the processing shown in FIG. 14 is terminated.

Likewise, in step 14_4, it is determined whether a working area P isempty, in other words, it is determined whether a mapping is completedup to the last stage of pointer element arranged in the pointer elementlist shown in FIG. 11. When the working area P is empty, the processingshown in FIG. 14 is terminated.

In step 14_5, a pointer (e.g. pointer 1_1 shown in FIG. 9) stored in theworking area D is substituted for a pointer (e.g. pointer 1_3) stored inthe pointer storage area (e.g. pointer storage area 1) indicated by apointer (e.g. pointer 1_2 shown in FIG. 11) stored in the working areaP. Thus, there is provided a mapping or a correspondence between thedata 1 of the object A and the pointer 1_1 of the object B, whichmapping is shown in FIG. 13.

In step 14_6, a pointer (e.g. pointer 2_1) stored in the next dataelement arranged in the data element list shown in FIG. 9 is stored inthe working area D. Likewise, a pointer (e.g. pointer 1_2) stored in thenext pointer element arranged in the pointer element list shown in FIG.11 is stored in the working area P. And the process returns to the step14_3. In this manner, this routine is repeated. Again in step 14_5, whenthere is provided a mapping between the last stage of data element ofthe data element list shown in FIG. 9 and the last stage of pointerelement of the pointer element list shown in FIG. 11, the process goesto the step 14_6 in which the working areas D and P are reset to beempty. And the process returns to the step 14_3 and the processing shownin FIG. 14 is terminated. While the above-explanation was made assumingthat the number of the data elements arranged in the data element listis the same as the number of pointer elements of the pointer elementlist, when they are different from one another in the number, theworking areas D or P are reset to be empty at the time when a mappingfor one less in number is terminated, and then the processing of FIG. 14is terminated.

After the processing of FIG. 14 or the mapping between the data elementlist and the pointer element list is terminated, the data element listand the pointer element list become useless and thus be erased.

In the data coupling processing explained in conjunction with FIGS. 9 to14, an operator, who operates the computer system 100, inputs:

(a) A pointer of the object A;

(b) A pointer of the object,B;

(c) A data element list number OUT_(A) of the object A;

(d) A pointer element list number IN_(A) of the object B.

It is noted that an input of data of the above-noted items (a) to (d)are performed, in a similar fashion to that of the input of thecorresponding relation between the message and the method explainedreferring to FIG. 8, by clicking of an icon displayed on a displayscreen 102 a (cf. FIG. 1).

In the processing shown in FIG. 14, while the mapping between the dataelements arranged in the data element list and the pointer elementsarranged in the pointer element list is performed in accordance with thesequence of their arrangements, for example, when the objects A and Bare made up, a provision of such a rule that the same name or theassociated name is given for the data storage area and the pointerstorage area which are associated with one another, or such a rule thatthere is provided an arrangement of the same or associated names in sucha manner that the associated one-to-one are arranged in the samesequence makes it possible to generate, by referring to their names orthe sequences of the arrangements, the data element list and the pointerelement list in which the data elements and the pointer elements, whichare associated with one another, respectively, are arranged in the samesequence in their lists, respectively. Thus, it is possible to providethe mapping associated with the arrangement sequence as shown in FIG.14.

According to the present embodiment, as shown in FIG. 3, it is possibleto directly refer to data of the object A from the object B, therebyefficiently transferring data between the objects and substantiallyimproving a processing operational speed as being over a plurality ofobjects. Thus, ther e is no need to make up large objects in view ofdecreasing the processing speed, and it is permitted to make up a lot ofsmall unit of objects thereby essentially improving a reusability of thesoftware.

According to the present embodiment mentioned above, the object couplingunit 10 shown in FIG. 3 couples a plurality of objects with each otherat the stage of an initialization, or at the stage in which a softwaresystem comprising a plurality of objects is constructed, but there isconsidered no re-coupling of the object-to-object after starting of theoperation of the software system thus constructed.

In view of the foregoing, next, there will be described alternativeembodiments in which after starting of the operation of the softwaresystem constructed, a re-coupling of the object-to-object is dynamicallyperformed, based on the abovementioned embodiment.

Hereinafter, first, referring to FIGS. 15 to 18, there will be describedthe schematic construction of each of the second to fifthobject-oriented programming apparatuses according to embodiments of thepresent invention and the second to fifth object-oriented programstorage medium according to embodiments of the present invention, andthereafter referring to FIGS. 19 to 35, there wil be describedembodiments in which the second to fifth object-oriented programmingapparatuses according to embodiments of the present invention and thesecond to fifth object-oriented program storage medium according toembodiments of the present invention are put together, respectively.

FIG. 15 is a typical illustration showing a second example of a softwaresystem implemented within the computer system shown in FIG. 1.

A corresponding relation between the software system shown in FIG. 15and the present invention is as follows.

That is, the storage unit 105 (cf. FIG. 1), in which the software systemshown in FIG. 15 is stored, corresponds to the second object-orientedprogram storage medium according to an embodiment of the presentinvention, and a combination of the hardware of the computer system 100and an object coupling unit 20 which is in a state operable under thecomputer system 100 corresponds to the second object-orientedprogramming apparatus. Incidentally, when the software system shown inFIG. 15 is downloaded onto the MO 110 shown in FIG. 1, the MO 110 alsocorresponds to an example of the second object-oriented program storagemedium according to an embodiment of the present invention.

Also in FIG. 15, let us consider typically two objects A and B among anumber of objects.

In the object coupling unit 20 shown in FIG. 15, an output instructionbus portion generating unit 21, an input instruction bus portiongenerating unit 22, and an instruction coupling unit 23 are the same intheir processing as the output instruction bus portion generating unit11, the input instruction bus portion generating unit 12 and theinstruction coupling unit 13 of the object coupling unit 10 shown inFIG. 3, respectively. Thus, in a similar fashion to that of FIG. 3, theinstruction coupling unit 23 produces a path 23 a to provide anassociation of messages of the object A with messages of the object B.It is also similar to that of FIG. 3 that the output instruction busportion generating unit 21 and the input instruction bus portiongenerating unit 22 are not always needed.

An input instruction tag table generating unit 24 produces, on theoutput instruction bus portion of the object A, an input instruction tagtable showing a correspondence between a message of another object (heretypically the object B) and a method of the object A.

As will be de scribed later, the input instruction tag table istransferred to the object B in the form of an argument of a messageissued from the object A to the object B. In the object B, during aprocessing of the object B there is dynamically produced a passage foran issue of a message directed from the object 5 to the object A, forexample.

FIG. 16 is a typical illustration showing a third example of a softwaresystem implemented within the computer system shown in FIG. 1.

A corresponding relation between the software system shown in FIG. 16and the present invention is as follows.

That is, the storage unit 105 (cf. FIG. 1), in which the software systemshown in FIG. 16 is stored, corresponds to the third object-orientedprogram storage medium according to an embodiment of the presentinvention, and a combination of the hardware of the computer system 100and an object coupling unit 30 which is in a state operable under thecomputer system 100 corresponds to the third object-oriented programmingapparatus. Incidentally, when the software system shown in FIG. 16 isdownloaded onto the MO 110 shown in FIG. 1, the MO 110 also correspondsto an example of the third object-oriented program storage mediumaccording to an embodiment of the present invention.

Also in FIG. 16, let us consider typically two objects A and B among anumber of objects.

In the object coupling unit 30 shown in FIG. 16, an output instructionbus portion generating unit 31, an input instruction bus portiongenerating unit 32, and an instruction coupling unit 33 are the same intheir processing as the output instruction bus portion generating unit11, the input instruction bus portion generating unit 12 and theinstruction coupling unit 13 of the object coupling unit 10 shown inFIG. 3, respectively. Thus, in a similar fashion to that of FIG. 3, theinstruction coupling unit 33 produces a path 33 a to provide anassociation of messages of the object A with messages of the object B.It is also similar to that of FIG. 3 that the output instruction busportion generating unit 31 and the input instruction bus portiongenerating unit 32 are not always needed,

An output instruction tag table generating unit 34 produces, on theoutput instruction bus portion of the object A, an output instructiontag table showing a correspondence between a method of another object(here typically the object B) and a message of the object A.

As will be described later, the output instruction tag table istransferred to the object B in the form of an argument of a messageissued from the object A to the object B. In the object B, during aprocessing of the object B there is dynamically rearranged a passage foran issue of a message directed from the object A to the object B, forexample.

FIG. 17 is a typical illustration showing a fourth example of a softwaresystem implemented within the computer system shown in FIG. 1.

A corresponding relation between the software system shown in FIG. 17and the present invention is as follows.

That is, the storage unit 105 (cf. FIG. 1), in which the software systemshown in FIG. 17 is stored, corresponds to the fourth object-orientedprogram storage medium according to an embodiment of the presentinvention, and a combination of the hardware of the computer system 100and an object coupling unit 40 which is in a state operable under thecomputer system 100 corresponds to the fourth object-orientedprogramming apparatus. Incidentally, when the software system shown inFIG. 17 is downloaded onto the MO 110 shown in FIG. 1, the MO 110 alsocorresponds to an example of the fourth object-oriented program storagemedium according to an embodiment of the present invention.

Also in FIG. 17, let us consider typically two objects A and B among anumber of objects.

In the object coupling unit 40 shown in FIG. 17, an output instructionbus portion generating unit 41, an input instruction bus portiongenerating unit 42,and an instruction coupling unit 43 are the same intheir processing as the output instruction bus portion generating unit11, the input instruction bus portion generating unit 12 and theinstruction coupling unit 13 of the object coupling unit 10 shown inFIG. 3, respectively. Thus, in a similar fashion to that of FIG. 3, theinstruction coupling unit 43 produces a path 43 a to provide anassociation of messages of the object A with messages of the object B.It is also similar to that of FIG. 3 that the output instruction busportion generating unit 41 and the input instruction bus portiongenerating unit 42 are not always needed.

An input data tag table generating unit 44 produces, on the outputinstruction bus portion of the object A, an input data tag table showinga correspondence between a data element list number OUT_(B) forspecifying a data element list in which pointers to data storage areasof another object (here typically the object B) are arranged and apointer element list number IN_(A) for specifying a pointer element listin which pointers to pointer storage areas of the object A are arranged.

The data element list number OUT_(B) and the pointer element list numberIN_(A) are determined at the stages when the objects B and A are madeup, respectively. However, at the stage in which the input data tagtable is simply generated, the data element list itself and the pointerelement list itself are not yet produced. The input data tag table istransferred to the object B in the form of argument of a message issuedfrom the object A to the object B. Upon receipt of the input data tagtable, the object B produces a data element list of one's own (theobject B) dynamically during a processing of the object B and a pointerelement list of the object A as well, so that the data element list andthe pointer element list are coupled together. Details thereof will bedescribed later.

FIG. 18 is a typical illustration showing a fifth example of (a softwaresystem implemented within the computer system shown in FIG. 1.

A corresponding relation between the software system shown in FIG. 18and the present invention is as follows.

That is, the storage unit 105 (cf. FIG. 1), in which the software systemshown in FIG. 18 is stored, corresponds to the fifth object-orientedprogram storage medium according to an embodiment of the presentinvention, and a combination of the hardware of the computer system 100and an object coupling unit 50 which is in a state operable under thecomputer system 100 corresponds to the fifth object-oriented programmingapparatus. Incidentally, when the software system shown in FIG. 18 isdownloaded onto the MO 110 shown in FIG. 1, the MO 110 also correspondsto an example of the fifth object-oriented program storage mediumaccording to an embodiment of the present invention.

Also in FIG. 18, let us consider typically two objects A and B among anumber of objects.

In the object coupling unit 50 shown in FIG. 18, an output instructionbus portion generating unit 51, an input instruction bus portiongenerating unit 52, and an instruction coupling unit 53 are the same intheir processing as the output instruction bus portion generating unit11, the input instruction bus portion generating unit 12 and theinstruction coupling unit 13 of the object coupling unit 10 shown inFIG. 3, respectively. Thus, in a similar fashion to that of FIG. 3, theinstruction coupling unit 53 produces a path 53 a to provide anassociation of messages of the object A with messages of the object B.It is also similar to that of FIG. 3 that the output instruction busportion generating unit 51 and the input instruction bus portiongenerating unit 52 are not always needed.

An output data tag table generating unit 54 produces, on the outputinstruction bus portion of the object A, an output data tag tableshowing a correspondence between a pointer element list number IN_(B)for specifying a pointer element list in which pointers to pointerstorage areas of another object (here typically the object B) arearranged and a data element list number OUT_(A) for specifying a dataelement list in which pointers to data storage areas of the object A arearranged.

The pointer element list number IN_(B) and the data element list numberOUT_(A) are determined at the stages when the objects B and A are madeup, respectively. However, at the stage in which the output data tagtable is simply generated, the pointer element list itself and the dataelement list itself are not yet produced. The output data tag table istransferred to the object B in the form of argument of a message issuedfrom the object A to the object B. Upon receipt of the output data tagtable, the object B produces a data element list of the object Adynamically during a processing of the object B and a pointer elementlist of one's own (the object B) as well, so that the data element listand the pointer element list are coupled together. Details thereof willbe described later.

FIG. 19 is a typical illustration showing a part of the data structureof objects A shown in FIGS. 15 to 18. FIG. 19 shows, of the datastructure shown in FIG. 4, one method element, an input instruction tagtable, an output instruction tag table, an input data tag table, andoutput data tag table, these four tag tables being coupled with themethod element. FIG. 19 shows overall data structure of the embodimentshaving all aspects of the respective embodiments explained referring toFIGS. 15 to 18.

Appended to the method element shown in FIG. 19 are the structure of themethod,element shown in FIG. 4, that is, a method number ME_(B) ofanother object (here typically object B), a pointer to an object (hereobject B) which executes a method specified by the method number ME_(B),a pointer to the subsequent method element, a pointer to an inputinstruction tag table (hereinafter, it happens that this pointer isreferred to as P1), a pointer to an output instruction tag table(hereinafter, it happens that this pointer is referred to as P2), apointer to an input data tag table (hereinafter, it happens that thispointer is referred to as P3), a pointer to an output data tag table(hereinafter, it happens that this pointer is referred to as P4), and apointer to oneself (object A) (hereinafter, it happens that this pointeris referred to as P5).

The input instruction tag table has the same width in its arrangement asthe maximum number MA_(B MAX) of messages of another object (here objectB), and stores therein the method number ME_(A) of the object A inassociation with the message number MA_(B) of the object B.

The output instruction tag table has the same width in its arrangementas the maximum number ME_(B MAX) of method of another object (hereobject B), and stores therein the message number MA_(A) of the object Ain association with the method number ME_(B) of the object B.

The input data tag table has the same width in its arrangement as themaximum number OUT_(B MAX) of data element lists of another object (hereobject B), and stores therein the pointer element list number IN_(A) ofthe object A in association with the data element list number OUT_(B) ofthe object B.

The output data tag table has the same width in its arrangement as themaximum number IN_(B MAX) of pointer element lists of another object(here object B), and stores therein the data element list number OUT_(A)of the object A in association with the pointer element list numberIN_(B) of the object B.

Incidentally, while FIG. 19 shows, with respect to the outputinstruction bus portion of the object A, four tag tables related to theobject B, generally, these four tag tables are provided in set by thenumber of party objects which receive messages issued by the object A,when the output instruction bus portion of the object A is viewed as awhole. That is, these four tag tables are provided in association witheach of the respective objects concerned. This is the similar as to thematter of the output instruction bus portion of another object notlimited to the object A.

In the event that the object A issues messages to the object A referringto the method element shown in FIG. 19, transferred from the object Aare the method number ME_(B) of the object B and in addition, ifnecessary, part or all of the pointers P1-P5 in the form of arguments.Alternatively, it is acceptable that the method number ME_(B) and all ofthe pointers P1-P5 are always transferred in the form of arguments.

Hereinafter, so far as it is not noted specifically, the explanationwill be made presupposing the data structure in which the data structureshown in FIG. 4 has been altered as shown in FIG. 19.

FIG. 20 is a flowchart useful for understanding an example ofprocessings for an issue of a message of an object A.

In FIG. 20, the steps 20_1, 20_3 and 20_4 are the same as the steps 5_1,5_3 and 5_4 of FIG. 5, respectively. Thus, the redundant explanationwill be omitted.

In step 20_2, the method number ME_(B) and in addition the pointers P1,P2 and P5, according to the present example, are transferred to theobject B in the form of arguments. Upon receipt of the message, theobject B executes a processing of a method specified by the methodnumber ME_(B) in accordance with the flowchart shown in FIG. 5(B).

FIG. 21 is a flowchart useful for understanding a first example of apartial processing of processings of an object B. The partial processingis executed during a processing of a method specified by the methodnumber ME_(B) transferred to the object B in the form of arguments.

In step 21_1, referring to the input instruction tag table transferredto the object B in the form of arguments, the method number ME_(A) ofthe object A is obtained from the message number MA_(B) of the object B.In step 21_2, during a processing of the object B, a processing of themethod of the obtained method number ME_(A) of the object A is executed.

FIG. 22 is a flowchart useful for understanding a second example of apartial processing of processings of an object B.

In step 22_1, referring to the input instruction tag table transferredto the object B in the form of arguments, the method number ME_(A) ofthe object A is obtained from the message number MA_(B) of the object B.In step 22_2, a method element related to the method number ME_(A) ofthe object A is added to a method element list associated with themessage number MA_(B) of the message table of one's own (the object B).In this manner, thereafter, an issuance of the message of the messagenumber MA_(B) of the object B permits an execution of the method of themethod number ME_(A) of the object A.

FIG. 23 is a flowchart useful for understanding a third example of apartial processing of processings of an object B. In this case, in thepartial processing, the argument of the message issued in the object Ais not referred to directly.

In step 23_1, a processing of the object B causes an object C to beproduced. A processing of producing another object in one object is oneof the usual processings in the object-oriented programming. Thus, anexplanation as to the technique of producing the object C will beomitted.

FIG. 24 is a flowchart useful for understanding a fourth example of apartial processing of processings of an object B.

With respect to the partial processing shown in FIG. 24, there is aneed, prior to its execution, to perform the partial processing shown inFIG. 23 so that the object C is produced. However, with respect totiming of a producing of the object C, it is not restrictedspecifically. It is acceptable that the object C is produced during aseries of processing at the present time in the object B. Alternatively,it is acceptable that the object C is produced in processing at theprevious or earlier time in the object B.

In the partial processing shown in FIG. 24, in step 24_1, referring tothe input instruction tag table transferred to the object B in the formof arguments, the method number ME_(A) of the object A, which isassociated with the message number MA_(B) succeeded to the object C,originally the message number of the object B, is obtained. In step24_2, a method element of the method number ME_(A) of the object A isadded to the method element list of the object C associated with themessage number MA_(B) of the message table of the object C. Thus, a pathof messages from the object C to the object A is formed.

FIG. 25 is a flowchart useful for understanding a fifth example of apartial processing of processings of an object B.

In step 25_1, referring to the output instruction tag table, the messagenumber MA_(A) of the object A associated with the method number ME_(A)of the object A is obtained. In step 25_2, a method element related tothe method number ME_(B) of the object B is added to a method elementlist associated with the message number MA_(A) of the message table ofthe object A. In this manner, thereafter, an issuance of the message ofthe message number MA_(A) of the object A permits an execution of themethod of the method number ME_(B) of the object B.

FIG. 26 is a flowchart useful for understanding a sixth example of apartial processing of processings of an object B.

With respect to the partial processing shown in FIG. 26, there is aneed, prior to its execution, to perform the partial processing shown inFIG. 23 so that the object C is produced. However, with respect totiming of a producing of the object C, it is not restrictedspecifically. It is acceptable that the object C is produced during aseries of processing at the present time in the object B. Alternatively,it is acceptable that the object C is produced in processing at theprevious or earlier time in the object B.

In the partial processing shown in FIG. 26, in step 26_1, referring tothe output instruction tag table transferred to the object B in the formof arguments, the message number MA_(A) of the object A, which isassociated with the method number ME_(B) succeeded to the object C,originally the message number of the object B, is obtained. In step26_2, a method element, in which the method number ME_(B) and thepointer to the object C are stored, is added to the method element listassociated with the message number MA_(A) of the message table of theobject A.

In this manner, thereafter, it is possible to issue messages from theobject A to the newly produced object C.

FIG. 27 is a flowchart useful for understanding another example ofprocessings for an issue of a message of an object A, which is differentfrom the example of that shown in FIG. 20.

In FIG. 27, steps 27_1, 27_3 and 27_4 are the same as the steps 20_1,20_3 and 20_4 of FIG. 20, and the steps 5_1, 5_3 and 5_4 of FIG. 5,respectively. Thus, the redundant explanation will be omitted.

In step 27_2, the object B is called, where the method number ME_(B) andin addition the pointers P3, P4 and P5 are argument.

Upon receipt of the message, the object B executes a processing of amethod specified by the methods number ME_(B).

FIG. 28 is a flowchart useful for understanding a seventh example of apartial processing of processings of an object B.

In step 28_1, referring to the input data tag table transferred to theobject B in the form of arguments, the pointer element list numberIN_(A) of the object A is obtained from the data element list numberOUT_(B) of the object B. In step 28_2, the pointer element list (cf.FIG. 11 wherein the pointer element list of the object B is shown) ofthe object A, which is associated with the obtained pointer element listnumber IN_(A), is produced. In step 28_3, the data element list (cf.FIG. 9 wherein the data element list of the object A is shown) of theobject B, which is associated with the data element list number OUT_(B),is produced. And in step 28_4, a coupling processing of the data elementlist with the pointer element list (cf. FIG. 13 wherein the pointer ofthe object B indicates the data of the object A, and in this respect,positions of the object A and the object B are reversed, as comparedwith the present case) is executed.

In this manner, according to the present embodiment, a path for transferof data between objects is formed during an execution of a processing,so called dynamically.

FIG. 29 is a flowchart useful for understanding a eighth example of apartial processing of processings of an object B.

With respect to the partial processing shown in FIG. 29, there is aneed, prior to its execution, to perform the partial processing shown inFIG. 23 so that the object C is produced. However, with respect totiming of a producing of the object C, any times are acceptable if theobject C is produced before the partial processing shown in FIG. 29.

In the partial processing shown in FIG. 29, in step 29_1, referring tothe input data tag table transferred to the object B in the form ofarguments, the pointer element list number IN_(A) of the object A isobtained from the data element list number OUT_(B), which is succeededto the object C, originally the data element list number of the objectB. In step 29_2, the pointer element list of the object A, which isassociated with the obtained pointer element list number IN_(A), isproduced. In step 29_3, the data element list of the object C, which isassociated with the data element list number OUT_(B), is produced. Andin step 29_4, a coupling processing of the data element list of theobject C with the pointer element list of the object A is executed.

In this manner, according to the present embodiment, a path for directlyreferring to data of the newly produced object C from the object A isformed during an execution of a processing, so called dynamically.

FIG. 30 is a flowchart useful for understanding a ninth example of apartial processing of processings of an object B.

In the partial processing shown in FIG. 30, in step 30_1, referring tothe output data tag table transferred to the object B in the form ofarguments, the data element list number OUT_(A) of the object A isobtained from the pointer element list number IN_(B) of the object B. Instep 30_2, the data element list of the object A, which is associatedwith the obtained data element list number OUT_(A) of the object A, isproduced. In step 30_3, the pointer element list of one's own (theobject B), which is associated with the pointer element list numberIN_(B), is produced. And in step 30_4, a coupling processing of the dataelement list of the object A with the pointer element list of the objectB is executed.

In this manner, according to the present embodiment, a path for directlyreferring to data of the object A from the object B is formed during anexecution of a processing, so called dynamically.

FIG. 31 is a flowchart useful for understanding a tenth example of apartial processing of processings of an object B.

With respect to the partial processing shown in FIG. 31, there is aneed, prior to its execution, to perform the partial processing shown inFIG. 23 so that the object C is produced. However, with respect totiming of a producing of the object C, any times are acceptable if theobject C is produced before the partial processing shown in FIG. 31.

In the partial processing shown in FIG. 31, in step 31_1, referring tothe output data tag table transferred to the object B in the form ofarguments, the data element list number OUT_(A) of the object A isobtained from the pointer element list number IN_(B), which is succeededto the object C, originally the pointer element list number of theobject B. In step 31_2, the data element list of the object A, which isassociated with the obtained data element list number OUT_(A) isproduced. In step 31_3, the pointer element list of the object C, whichis associated with the pointer element list number IN_(B), is produced.And in step 31_4, a coupling processing of the data element list of theobject A with the pointer element list of the object C is executed.

In this manner, according to the present embodiment, a path for directlyreferring to data of the object A from the object C is formed during anexecution of a processing, so called dynamically.

While the above description concerns various types of partialprocessings during a processing of the object B, those various types ofpartial processings are not always executed independently, and ifnecessary, a plurality of partial processings are performed continuouslyor in their combination.

FIG. 32 is a flowchart useful for understanding processings of the inputinstruction tag table generating unit 24 of the object coupling unit 20shown in FIG. 15.

An operator, who operates the computer system 100 (cf. FIG. 1) instructsthe following items:

(a) A pointer of the object A

(b) A pointer of the object B

(c) A method number ME_(A) of the object A

(d) A message number MA_(B) of the object B

In the processing shown in FIG. 32, upon receipt of the above-notedinstructions, a frame of the input instruction tag table having the samewidth as the maximum number MA_(BMAX) of messages of the object B isproduced (step 32_1). In step 32_2, the method number ME_(A) of theobject A is stored in the column of the message number MA_(B) of theobject B of the frame thus produced. In step 32_3, a pointer to theinput instruction tag table is registered into the whole method elements(e.g. the method element shown in FIG. 19) related to the object B, ofthe object A. It is noted that FIG. 19 shows an illustration in whichthe pointer (P1) to the input instruction tag table has been alreadyregistered.

While the object B is typically dealt with according to the presentembodiment, the output instruction bus portion of the object A producesinput instruction tag tables related to all of the objects which have apossibility of receiving messages issued from the object A, and pointersto the input instruction tag tables are registered into method elementsrelated to the objects associated with the input instruction tag tablesthus produced, respectively. This is the similar as to the matter of theoutput instruction tag tables, the input data tag tables and the outputdata tag tables.

FIG. 33 is a flowchart useful for understanding processings of theoutput instruction tag table generating unit 34 of the object couplingunit 30 shown in FIG. 16.

An operator, who operates the computer system 100 (cf. FIG. 1),instructs the following items in a similar fashion to that of wiring ofLSI's:

(a) A pointer of the object A

(b) A pointer of the object B

(c) A message number MA_(A) of the object A

(d) A method number ME_(B) of the object B

In the processing shown in FIG. 33, upon receipt of the above-notedinputs, a frame of the output instruction tag table having the samewidth as the maximum number ME_(BMAX) of methods of the object B isproduced (step 33_1). In step 33_2, the message number MA_(A) of theobject A is stored in the column of the method number ME_(B) of theobject B of the frame thus produced, in step 33_3, a pointer to theoutput instruction tag table is registered into the whole methodelements related to the object 8, of the object A. It is noted that FIG.19 shows an illustration in which the pointer (P2) to the outputinstruction tag table has been already registered.

FIG. 34 is a flowchart useful for understanding processings of the inputdata tag table generating unit 44 of the object coupling unit 40 shownin FIG. 17.

An operator, who operates the computer system 100 (cf. FIG. 1),instructs the following items in a similar fashion to that of wiring ofLSI's:

(a) A pointer of the object A

(b) A pointer of the object B

(c) A pointer element list number IN_(A) of the object A

(d) A data element list number OUT_(B) of the object B

In the processing shown in FIG. 34, upon receipt of the above-notedinstructions, a frame of the input data tag table having the same widthas the maximum number OUT_(BMAX) of data element lists of the object Bis produced (step 34_1). In step 34_2, the pointer element list numberIN_(A) of the object A is stored in the column of the data element listnumber OUT_(B) of the object B of the frame thus produced. In step 34_3,a pointer to the input data tag table is registered into the wholemethod elements related to the object B, of the object A. It is notedthat FIG. 19 shows an illustration in which the pointer (P3) to theinput data tag table has been already registered.

FIG. 35 is a flowchart useful for understanding processings of theoutput data tag table generating unit 54 of the object coupling unit 50shown in FIG. 18.

An operator, who operates the computer system 100 (cf. FIG. 1),instructs the following items in a similar fashion to that of wiring ofLSI's:

(a) A pointer of the object A

(b) A pointer of the object B

(c) A data element list number of the object A

(d) A pointer element list number of the object B

In the processing shown in FIG. 35, upon receipt of the above-notedinputs, a frame of the output data tag table having the same width asthe maximum number IN_(BMAX) of pointer element lists of the object B isproduced (step 35_1). In step 35_2, the data element list number OUT_(B)of the object A is stored in the column of the pointer element listnumber IN_(B) of the object B of the frame thus produced. In step 35_3,a pointer to the output data tag table is registered into the wholemethod elements related to the object B, of the object A. It is notedthat FIG. 19 shows an illustration in which the pointer (P4) to theoutput data tag table has been already registered.

While it is acceptable that the processings in FIGS. 32 to 35 areexecuted independently and only one of four tag tables shown in FIG. 19is registered into the method element, it is also acceptable that two ormore of these four tag tables are registered into one method element, ifnecessary or always. Further, although FIGS. 32 to 35 fail to clearlystate, in the event that anyone of the processings shown in FIGS. 32 to35 is executed, the pointer (P5) to the object A itself is registeredinto the method.

According to the embodiments explained referring to FIGS. 15 to 35, notonly are object-to-object coupled with one another in the initial state,but also a coupling of a message with a method, and a coupling of datawith a pointer are performed during an execution of processings ordynamically. When a new object is produced, in a similar fashion as tothe matter of the new object, the dynamic coupling is performed. In thismanner, the new coupling is performed in accordance with conditions, anda very higher speed of transfer of messages and data among a pluralityof objects is implemented.

Next, there will be described an embodiment concerning the interobjectwiring editor unit 122 and the associated periphery. Here, of theembodiment concerning the interobject wiring editor unit 122 and theassociated periphery, there will be described an embodiment of anobject-between-network display method on the display screen 102 a of thedisplay unit 102 of the computer system 100.

As described above, while the object oriented programming has variousdrawbacks such that reuse of software is low and a running speed isslow, there exists an idea such that objects are wired to describe aconnecting relation among the objects. However, according to the earliertechnology, the connecting relation-among the objects is very simple,such that data is transferred to another object in the form of anargument of the message. As described in the embodiment related to theabove-mentioned interpreter unit 123, however, in the event that thereis a need to perform a wiring among pointers of the objects, which ismore complicated than a wiring among the objects, according to theconventional display scheme, it is difficult for users to readilyunderstand the connecting relation among the objects and to efficientlyperform a wiring.

For example, hitherto, when an object-between-network is displayed,there is no distinction between a position of display for objects and aposition of display for wirings among the objects, and arrangement andwiring of the objects are performed freely. Thus, a certain displaydevice permits an object to overlap with a wiring. This raises such aproblem that users are obliged to perform a wiring so as to avoid anoverlapping. Also a certain another display device does not display aresultant network even if a wiring is implemented. This raises such aproblem that users cannot readily grasp a relation between objects.

Further, according to the prior art system, the displayed object is of ahierarchical structure, and a device for displaying subnetworksconstituting a certain object displays such subnetworks on a new screenor window. This raises such a problem that it is difficult for users toidentify a connecting relation between a network of the parent objectand the subnetworks, and in addition such a problem that the network ofthe parent object goes behind the new window.

Furthermore, according to the conventional object-between-networkdisplay, an object is fixed or variable in size. However, in the eventthat the object is fixed, in a case where the number of input and outputterminals of the object is variable, there is a possibility that theselection of a large number of input-and output terminals bring aboutnarrow terminal intervals and thus it will be difficult to displayterminal names. Also in the event that the object is variable in size,users have to control the size of the object. This raises such a problemthat a work amount is increased.

Still further, according to the conventional object-between-networkdisplay, in the event that directions of the flow of data andinstructions in the network wiring are indicated, arrows are appended toonly one terminal end or only both ends. Consequently, it is impossibleto identify the flow direction in the middle of a wiring. Thus, in acase where the objects on both the ends of a wire are out of the displayscreen, there is a problem that it is impossible to identify whether theterminal of the object, which is a starting end or a terminal end, is aninput terminal or an output terminal.

Still furthermore, according to the conventional object-between-networkdisplay, in the event that wires intersect, in order to identify whethertwo wires intersect or separate from one another, a mark such as a blackpoint or the like is appended to a junction, alternatively a circulararc mark or the like is utilized. However, in the event that the marksuch as a black point or the like is appended to a junction, it isnecessary for users to understand a rule of the display. On the otherhand, in the event that the circular are mark is utilized, there is aproblem that a radius of width is needed for a one wire.

In view of the foregoing problems involved in the object-between-networkdisplay, an embodiment, which will be described hereinafter, is toprovide a display method easy for users to be understood.

Hereinafter, there will be described embodiments of anobject-between-network display method according to the presentinvention. First, fundamental embodiments of an object-between networkdisplay method according to the present invention will be explained, andthen the more descriptive embodiments will be explained.

FIG. 36 is a typical illustration of a display screen useful forunderstanding an object-between-network display method according to anembodiment of the present invention. While FIG. 35 shows a lattice 201which appears on the display screen 102 a, it is noted that the lattice201 is shown for the purpose of a clarification that the display screen102 a is partitioned into a plurality of display areas, and the lattice201 is not displayed indeed on the display screen 102 a.

The display screen 102 a is partitioned by the lattice 201 into aplurality of display areas each consisting of one measure. Each of thedisplay areas comprises an object display domain 203 for displaying oneof a plurality of objects produced by an object-oriented programming,and a wiring display domain 204 for displaying a wiring to connect aplurality of objects to one another. The term “wiring” implies wiresrepresentative of the path 13 a, 23 a, 33 a, 43 a and 53 a for atransfer of messages shown in FIGS. 3 and 15 to 18, and the path 16 afor a transfer of data shown in FIG. 2. The wiring display domain 204 isdetermined in its location in such a manner that the wiring displaydomain 204 is formed between the object display domain-to-domain 203 ofthe adjacent two display areas.

There is displayed on the display screen 102 a an image such that eachof a plurality of objects constituting a network is disposed on theassociated one of the object display domains 203 of the respectivedisplay areas, and wirings for coupling the plurality of objects withone another are displayed on the wiring display domains 204.

According to the display method as mentioned above, it is possible toobtain an arrangement in which objects are arranged in good order, andin addition possible to obtain a display easy to see involving nooverlapping of the objects with the wirings since the domains fordisplaying the objects and the domains for displaying the wirings areseparately prepared.

Next, there will be explained a method of display for a network whereinobjects constituting the network are given with a hierarchicalstructure.

FIG. 37 is an explanatory view useful for understanding hierarchicalnetworks.

FIG. 37 shows an example in which objects 1 and 2 are constructed withsubnetworks 1 and 2, respectively. Each of the subnetworks 1 and 2comprises a plurality of objects and wirings for coupling the pluralityof objects with one another. While FIG. 37 shows two stages ofhierarchical structure, it is acceptable that three or more stages ofhierarchical structure is provided.

FIGS. 38(A) and (B) are illustrations each showing by way of example adisplay image consisting of a lot of objects and wirings. FIG. 38(A)shows a display image in its entirety, and FIG. 38(B) shows a partialimage, with the object 205 as the central part.

FIGS. 39(A) and (B) are illustrations each showing by way of example adisplay image of a subnetwork 206 constituting the object 205, insteadof the object 205 shown in FIGS. 38(A) and (B). FIG. 39(A) shows adisplay image in its entirety, and FIG. 39(B) shows a partial image,with the object 206 as the central part.

In the event that the subnetwork, which comprises the above-mentionedlower class of plurality of objects in hierarchical structure, insteadof the object 205 included in a display image 207 shown in FIGS. 38(A)and (B), and wiring for coupling those objects with one another, isdisplayed, a display area broader than a display area of the object 205is allocated to the subnetwork 206; display areas, which are arranged atthe upper and lower sides of the display area of the subnetwork 206, areenlarged to right and left: display areas, which are arranged at theright and left sides of the display area of the subnetwork 206, areenlarged up and down; and as to display areas locate d at diagonal sideswith respect to the display area of the subnetwork 206, the same size asthat of the display areas on the display image shown in FIGS. 38(A) and(B) in which the object 205 equivalent to the subnetwork 206 isdisplayed is allocated.

As shown in FIG. 39(B), there are displayed wires among a plurality ofobjects constituting the subnetwork 206, and in addition there aredisplayed wires among the subnetwork 206 and the surrounding networks ofthe subnetwork 206.

An adoption of the abovementioned display method makes it possible toeasily confirm the connecting state of the subnetwork with thesurrounding networks, as compared with the conventional scheme in whichthe subnetwork 206 is displayed on an independent window.

FIGS. 40(A) and (B) are illustrations each showing an alternativeembodiment of the display method of the subnetwork. FIG. 40(A) shows anexample of a display image before a subnetwork is displayed, the displayimage including an object equivalent to the subnetwork. FIG. 40(B) showsan example of a display image in which the object is replaced by thesubnetwork.

It is assumed that the object 205 included in the display image 207shown in FIG. 40A) is replaced by the subnetwork 206 equivalent to theobject 205, as shown in FIG. 40(B).

The subnetwork 206 is allocated a display area broader than that of theobject 205. However, the display areas located around the display imageshown in FIG. 40(B) is display areas in which the same object isdisplayed, as compared with the display areas located around the displayimage shown in FIG. 40(A). Further, with respect to the position and thesize of the sides adjacent to the periphery of the display image 207, ofthe display areas located around the display image, FIG. 40(A) and FIG.40(B) are the same as each other. That is, in FIG. 40(A) and FIG. 40(B),the same information is displayed except for the point that the object205 is replaced by the subnetwork 206, while FIG. 40(B) shows that thedisplay area except for the subnetwork 206 is distorted. Thus, it ispossible to prevent display areas located apart from the subnetwork 206from disappearing from the display screen owing to displaying thesubnetwork 206 as a substitute for the object 205 as in FIG. 39(A)compared with FIG. 37(A).

Accordingly, similar to the example of FIGS. 39(A) and 39(B), anadoption of the above-mentioned display method makes it possible toeasily confirm the connecting state of the subnetwork with thesurrounding networks, and in addition makes it possible to confirmthroughout the network displayed before a display of the subnetwork (thefirst image) in a state that the subnetwork is displayed, whiledeformed.

FIGS. 41(A), (B) and l(C) are illustrations each showing by way ofexample a display image having a display area in which a plurality ofmeasures are coupled together. FIG. 41(A) shows the display image in itsentirety, and FIGS. 41(B) and (C) show partial images enlarged.

In the display image, there are shown various sizes of objects 210-215.The object 210 of these objects 210-215 is disposed in an display areapartitioned with a measure of domain, and the remaining objects 211-215each having another size are disposed in enlarged display areas in whicha plurality of adjacent measures are coupled together to form a singledisplay area. As shown in FIGS. 41(B) and (C), the objects arestandardized in their figure and size in accordance with the figure andsize of the associated display areas, respectively.

An adoption of the above-mentioned display method makes it possible todisplay various sizes of objects with sizes easy to see, and in additionpossible to display a display screen easier to see through astandardization.

Next, there will be described a display method of wiring for connectingobject-to-object with each other.

FIG. 42 is an illustration showing by way of example a display imagecharacterized by a display method of wiring.

Displayed on a display screen 102 a are objects 216 to 219. An outputterminal 220 is connected to an input terminal 221 by a wire 222. Anoutput terminal implies that data or instructions (messages) of theassociated object are outputted to another object. An input terminalimplies that data or instructions (messages) of another object arereceived thereat.

The wire 222 has information of a direction directed from the outputterminal 220 to the input terminal 221, in which directions of data orinstruction flows are repeatedly indicated for each short segmentconstituting the wire.

An adoption of the above-mentioned display method makes it possible toreadily grasp directions of data or instruction flows even in the eventthat one or both of the objects to be connected together by the wire arelocated out of the display screen 102 a.

FIGS. 43(A) and (B) are illustrations each showing an alternativeembodiment of the display method of the wiring.

A wire 223 comprises a central wire 223 a and edge wires 223 b alongboth ends of the central wire 223 a. The central wire 223 a and edgewires 223 b are representative of mutually different display aspects,for example, hue, lightness and saturation.

In the event that the wire 223 comprising the central wire 223 a and theedge wires 223 b is adopted and such two wires 223 intersect, if thosetwo wires are representative of mutually different data or controlflows, as shown in FIG. 43(A), there is provided such a display that oneof the two wires is divided into parts at the position that its centralwire is in contact with the edge wires of the other wire or at theposition that its central wire comes close to the edge wires of theother wire (according to the present embodiment, the former) so as toform a crossing with an overpass. On the other hand, if the two wiresare representative of the same data or control flows, as shown in FIG.43(B), there is provided such a display that the central wires 223 a ofboth the wires are continued. An adoption of the above-mentioned displaymethod makes it possible to readily determine as to whether the crossingwires are interconnected or simply cross each other.

The above is an explanation of the fundamental embodiment of theobject-between-network display method according to the presentinvention. Next, hereinafter, there will be described more specificembodiments of the object-between-network display method according tothe present invention.

FIGS. 44(A), (B) and (C) are illustrations useful for understanding aprocedure for producing a display area for displaying a network of anobject. In FIG. 44(A), the display screen is divided vertically andhorizontally into four parts to form lattices. In FIG. 44(B), there isprovided such an arrangement that for each measure of the producedlattices, a domain formed with length of 50% of the measure in lengthand breadth is given for an area for disposing an object, and the domainis located at the center of the measure. In FIG. 44(B), the screen isdivided on an equal basis, and the area for the object is located at thecenter of the measure. However, it is acceptable to designate a width ofthe measure, and as shown in FIG. 44(B), it is acceptable that the areafor the object is located at the corner of the measure.

FIG. 45 is an illustration showing a state in which an object isdisposed on a display screen by users. FIGS. 46(A) and (B) areillustrations each showing a state in which a wiring among objectsdisposed on a display screen is performed by users.

As shown in FIG. 45, according to the present embodiment, when a usersets up an object 224, the object 224 set up by the user isautomatically positioned at an area 225 specially designed for an objectdisposition, which is located closest to the set up position.Accordingly, it is possible to obtain an arrangement of objects in whichobjects are arranged in good order simply through users taking it easyto arrange objects. Further, according to the present embodiment, it ispossible to automatically display wire 229 in an area 204 for displayingwirings of a network, as shown in FIG. 46(B), simply through usersperforming an operation of connecting terminals of object 226 and object227 together with a straight line directly, as shown in FIG. 46(A).Consequently, it does not happen that the objects and the wiringsoverlap with each other. Thus, it is possible to display a network easyto see for users.

FIGS. 47(A) and (B) are illustrations showing by way of example displayscreens of an object-between-network before and after display of thesubnetwork, respectively. FIG. 48 is a flowchart useful forunderstanding a procedure for switching from the display of FIG. 47(A)to the display of FIG. 47(B).

At the stage that an image shown in FIG. 47(A) is displayed on a displayscreen, an object having a subnetwork is designated through an operationof, for example, a mouse not illustrated or the like (step 48_1), and itis instructed that the designated subnetwork is displayed (step 48_2).In an image display apparatus, a measure whereat the selected object islocated and lattices associated with the measure in vertical andhorizontal directions are enlarged by the corresponding area necessaryfor a display of the subnetwork giving the corner of upper left of themeasure as a starting point (step 48_3). In step 48_4, with theenlargement, a deformation of the objects arranged in vertical andhorizontal directions and an extension of wirings are performed. In step48_5, a new lattice is formed within a measure enlarged for a display ofthe subnetwork and display the subnetwork on the lattice thus formed. Instep 48_6, the object of the subnetwork and the object of theneighboring network are connected together.

In this manner, a transfer of images from that shown in FIG. 47(A) tothat shown in FIG. 47(B) is performed. Incidentally, according to thepresent embodiment, the starting point of the measure for an enlargementis given with the corner of upper left of the measure. However, it isacceptable that the enlargement starting point of the measure is givenwith another corner, or the center of the measure.

FIGS. 50(A), (B) and (C) are explanatory views useful for understandinga procedure of a subnetwork display. FIG. 49(A) shows anobject-between-network before a display of a subnetwork, FIG. 49(B)shows a state in which the subnetwork is displayed with an enlargementand trapezoid of measures are formed on the upper and lower sides andthe left and right sides of the enlarged measure, and FIG. 49(C) shows astate in which the subnetwork is displayed with an enlargement, andmeasures of the neighbor objects are deformed so that the whole networkmay be displayed within the screen.

FIG. 50 is a flowchart useful for understanding a procedure of thesubnetwork display.

As shown in FIG. 50, an object having a subnetwork is selected throughan operation of, for example, a mouse or the like (step 50_1), and it isinstructed that the selected subnetwork is displayed (step 50_2). In animage display apparatus, a transfer of images from that shown in FIG.49(A) to that shown in FIG. 49(C) is performed in accordance with thefollowing procedure.

First, in step 50_3, it is determined as to whether the subnetwork isaccommodated within the display screen. If it is decided that thesubnetwork is not accommodated within the display screen, a transfer ofimages from that shown in FIG. 49(A) to that shown in FIG. 49(B) is notperformed. If it is decided that the subnetwork is accommodated withinthe display screen, the process goes to step 50_4 in which a measurewhereat the selected object is located is enlarged by the correspondingarea necessary for a display of the subnetwork giving the center of themeasure as a starting point (cf. FIG. 49(A)).

In step 50_5, as shown in FIG. 49(B), straight lines are drawn fromcorners of the enlarged measure to corners of the measures of the screenedges in vertical and horizontal directions to form trapezoids. In step50_6, each of the trapezoids is partitioned into necessary parts toproduce trapezoid of measures. In step 50_7, straight lines are drawnfrom corners of the measures of trapezoid to corners of the measures ofthe screen edges to produce residual measures. In step 50_8, with adeformation of the measures, a deformation of the object and wirings areperformed. Finally, in step 50_9, the object of the subnetwork and theobject of the neighboring network are connected together.

In this manner, a transfer of images from that shown in FIG. 49(A) tothat shown in FIG. 49(C) is performed.

Incidentally, according to the present embodiment, the measures formedon the upper and lower sides and the left and right sides of thesubnetwork are given with a figure of trapezoid. However, it isacceptable that such measures are given with a figure of curve.

FIGS. 51(A), (B) and (C) are typical illustrations each showing anembodiment in which a display area representative of an object is formedwith a single measure or a plurality of measures coupled with oneanother. According to the present embodiments, a number of measures tobe used is altered in accordance with a number of terminals of anobject. FIG. 51(A) shows a case where one measure is used by one and anobject has the maximum 12 terminals. FIG. 50(B) shows a case where twomeasures are used by two and an object has the maximum 30 terminals.FIG. 51(C) shows a case where four measures are used by four and anobject has the maximum 48 terminals. As a number of terminals of theobject is increased, a number of measures may be increased.

FIGS. 52(A) and (B) are illustrations useful for understanding by way ofexample a display method of wiring. In FIG. 52(A), a screen 1 shows astate of halfway in which a wiring from an output terminal of an object1 (obj 1) to an input terminal of an object 2 (obj 2) is conducted.While the object 1 disappears from the screen 1, it will be understoodfrom a figure of the line drawn out that a terminal to be connected isan input terminal. Likewise, with respect to a screen 2, in the eventthat a wiring from an input terminal of an object 4 (obj 4) to an outputterminal of an object 3 (obj 3) is conducted, even if the object 4disappears from the screen 2, it will be understood from a figure of theline that a terminal to be connected is an output terminal. FIG. 52(B)shows a network after a completion of wiring in which wires have beenchanged to the usual solid lines. According to the present embodiment,while the wires are changed to the usual solid lines at the time whenall of the wirings have been completed, it is acceptable that a wire ischanged to the usual solid line whenever one wiring is completed.

FIG. 53 is a typical illustration showing by way of example a display ofwiring. FIG. 54 is a flowchart useful for understanding a procedure ofexecuting the wiring shown in FIG. 53.

According to the present embodiment, there is adopted a wiringconsisting of the central wires and the edge wires, as describedreferring to FIGS. 43(A) and (B), and when a user selects the outputterminal and input terminal which are connected together, an automaticwiring is conducted in accordance with a procedure shown in FIG. 54.

In step 54_1, a user selects the output terminal and input terminalwhich are connected together. In step 54_2, a vertical lane A isproduced at the output terminal end. In step 54_3, overwritten with aline is a horizontal lane of the output terminal from the outputterminal to the vertical lane A, so that a wiring on the overwrittenportion is displayed on the display screen. In step 54_4, it isdetermined whether the input terminal is over against the outputterminal. What is meant by that the input terminal is over against theoutput terminal is that for example, as in the relation between anoutput terminal 1 and an input terminal q, the output terminal and theinput terminal are located so as to be opposite to each other. On theother hand, in case of the relation between an output terminal 7 and aninput terminal r, it is determined that they are not over against eachother.

In a case where it is determined that the input Up terminal is overagainst the output terminal, the process goes to step 54_5 in which thevertical lane A is overwritten with a line up to the horizontal lane ofthe input terminal. If there is already a portion connected with thehorizontal lane, for example, as in a case where a wiring between anoutput terminal 8 and an input terminal c is already conducted, and inaddition a wiring between the output terminal 8 and an input terminal eis newly conducted, a coupling process as shown in FIG. 43(B) isperformed. In step 54_6, the horizontal lane of the input terminal isoverwritten with a line up to the input terminal.

In a case where in step 54_4, it is determined that the input terminalis not over against the output terminal, the process goes to step 54_7in which the vertical lane is produced at the input terminal end. Instep 54_8, a horizontal lane C not sandwiched in objects is produced. Instep 54_9, the vertical lane A is overwritten with a line up to thehorizontal lane C. If there is already a portion connected with thehorizontal lane, a coupling process is performed.

In step 54_10, the horizontal lane C is overwritten with a line up tothe vertical lane B. In step 54_11, the vertical lane B is overwrittenwith a line up to the horizontal lane of the input terminal. If there isalready a portion connected with the horizontal lane, a coupling processis performed.

Thereafter, the process goes to step 54_6 in which the horizontal laneof the input terminal is overwritten with a line up to the inputterminal.

Each of FIGS. 55-57 are a flowchart useful for understanding analternative embodiment of a procedure of executing the wiring. FIGS.58-62 are typical illustrations each showing a result obtained from anexecution of wiring according to the wiring procedures shown in FIGS.55-57. FIGS. 63(A), (B) and (C) are typical illustrations each showing aresult obtained from an execution of wiring according to the wiringprocedures shown in FIGS. 55-57. An adoption of the wiring proceduresaccording to the present embodiment makes it possible to perform anautomatic wiring, even if there exist objects which are not uniform infigure, different from the case in which the wiring procedure shown inFIG. 54 is adopted.

As shown in FIG. 55, in step 55_1, a user selects the output terminaland input terminal which are connected together. In step 55_2, a lane 1(cf. FIGS. 58-62) perpendicular to the output terminal is provided in anwiring area having the output terminal. In step 55_3, a line is drawn ona lane 2 (cf. FIGS. 58-61) of the output terminal from the outputterminal to the lane 1. In step 55_4, it is determined whether the inputterminal is over against the output terminal. In a case where the inputterminal is over against the output terminal, as shown in FIG. 58 ofFIGS. 58-61, the process goes to step 55_5 in which a line is drawn froma node a of the lane 1 and lane 2 to a lane 3 of the input terminal. Instep 55_6, a line is drawn from a node b, which is a cross point of thelane 1 and lane 3, to the input terminal. Thus, the wiring is completed,in the event that the input terminal is over against the outputterminal, as shown in FIG. 58.

In a case where in step 55_4, it is determined that the input terminalis not over against the output terminal, the process goes to step 55_7in which a line is drawn from the node a of the lane 1 and lane 2 towardan object having the input terminal. While the line is drawn, it isdetermined as to whether the line comes across an existing object (step56_1 in FIG. 56), whether the line reaches an wiring area an objecthaving the input terminal (step 56 2), whether the line reaches anwiring area of the input terminal (step 56_3), and whether the linereaches a position perpendicular to the lane 3 of the input terminal(step 56_4).

In step 56_1, when it is determined that the line comes across theexisting object, the process goes to step 56_10 in which, as shown inFIG. 63(A), a lane A perpendicular to the line is provided on a wiringarea of a position whereat the tip of the line is located now, and thelane A thus provided is connected to the line. In step 56_11, a lane Bparallel to the line is provided on a wiring area near the inputterminal, and the line is connected along the lane A from the lane 1 tothe lane B. In step 56_13, a line is drawn along the lane B from a nodek or cross point of lane A and lane B toward the object having the inputterminal.

In step 56_2, the determination is made at the stage that a line isdrawn along the lane 1 up to a cross of area in which the area of theobject having the input terminal (including not only the disposing areaof the object itself, but also the neighbor wiring areas, for example,in case of FIG. 58, the area of the object having the input terminalimplies all of the partial areas p, q, r, s, u, v, w and x) is extendedvertically and horizontally. In step 56_2, when it is determined thatthe line does not reach the area of the object having the input terminal(for example, in case of FIG. 58, all of the partial areas p, q, r, s,u, v, w and x), the process goes to step 56_12 in which as shown in FIG.63(C), a lane C perpendicular to the line is provided on a wiring areaof a position whereat the tip of the line is located now, and the lane Cthus provided is connected to the line. In step 56_13, a line is drawnalong the lane C from the node k toward the object having the inputterminal.

In a case where in step 56_3, when it is determined that the line doesnot reach the wiring area of the input terminal (for example, in case ofFIG. 58, the partial areas p, s and v), the process goes to step 57_1.This case will be described latter.

In step 56_4, it is determined as to whether the line reaches a positionperpendicular to the lane 3 of the input terminal, and when it isdecided that the line is perpendicular to the lane 3, the process goesto step 56_5 in which as shown in FIG. 59, the line is extended to thelane 3. In step 56_6, the line is drawn on the lane 3 from the node Ccrossing to the lane 3 to the input terminal. Thus, the wiring shown inFIG. 59, for example, is completed.

On the other hand, in step 56_4, when it is decided that the line is notperpendicular to the lane 3 of the input terminal, the process goes tostep 56_7 in which as shown in FIG. 60, a lane 4 perpendicular to theline is provided on the wiring area of the input terminal. In step 56_8,the line is drawn from a node d to the lane 3. In step 56_9, the line isdrawn from a node e to the input terminal. Thus, the wiring shown inFIG. 60, for example, is completed.

In step 56_3, when it is determined that the line does not reach thewiring area of the input terminal, the process goes to step 57_1 of FIG.57 in which it is determined as to whether the line reaches a positionperpendicular to the lane 3 of the input terminal. When it is decidedthat the line is perpendicular to the lane 3, the process goes to step57_2 in which as shown in FIG. 61, a lane 5 is provided on the presentwiring area. In step 57_3, a lane 6 is provided on the wiring area ofthe input terminal. In step 57_4, the line is drawn from a node f alongthe lane 5 to the lane 6. In step 57_5, the line is drawn from a node gto the lane 3. In step 57_6, the line is drawn from a node h to theinput terminal. Thus, the wiring shown in FIG. 61, for example, iscompleted.

In step 57_1, when it is decided that the line is not perpendicular tothe lane 3 of the input terminal, the process goes to step 57_7 in whichas shown in FIG. 62, a lane 7 perpendicular to the line is provided onthe wiring area of the input terminal. In step 57_8, the line isextended from the node a to a lane 7. In step 57_9, the line is drawnfrom a node i to the lane 3. In step 57_10, a lane perpendicular to theline is provided on the present wiring area, and the lane thus providedis connected to the line. In step 57_11, the line is drawn from a node jto the input terminal. Thus, the wiring shown in FIG. 62, for example,is completed.

Practicing the wiring procedures shown in FIGS. 55-57 makes it possibleto complete the wirings in case of a disposing state of each of theobjects of FIGS. 63(A) to (D) as well.

As described above, according to the object-oriented programmingapparatus and an object-oriented program storage medium of the presentinvention, there is implemented a higher speed of transfer ofinformation among a plurality of objects in an object-orientedprogramming. Thus, it is possible to realize a software system wherein alot of small objects are gathered, without decreasing a processingspeed, thereby dramatically improving reuse of the objects.

Further, according to the case where the object-oriented programmingapparatus of the present invention is provided with an object displayunit, and the object-between-network display method according to thepresent invention, it is possible to display an object-between-networkeasy to be understood thereby contributing to an improvement of aworking efficiency for users.

While the present invention has been described with reference to theparticular illustrative embodiments, it is not to be restricted by thoseembodiments but only by the appended claims. It is to be appreciatedthat those skilled in the art can change or modify the embodimentswithout departing from the scope and spirit of the present invention.

As described above, according to the object-between-network displaymethod according to the embodiment of the present invention, it ispossible to display an object-between-network easy to be understoodthereby contributing to an improvement of a working efficiency forusers.

The above is an explanation concerning an embodiment of anobject-between-network display method on the display screen 102 a of thedisplay unit 102 of the computer system 100 shown in FIG. 1, ofembodiments concerning the interobject wiring editor unit 122 and theassociated periphery of the object ware programming system 120. Next,there will be described an embodiment concerning a programming in theinterobject wiring editor unit 122 and the associated periphery. Theprogramming in the interobject wiring editor unit 122 is performed insuch a manner that the object-between-network as mentioned above isdisplayed on the display screen, an operator “wires” among objectsthrough his observation of the display.

As mentioned above, hitherto, there exists a concept of anobject-oriented programming, remaining problems as to reuse of asoftware and a running speed, wherein objects are typically displayed ona display screen and “wired”, so that a connecting relation among theobjects is described. Such a “wiring” has been associated with thefollowing problems.

In the event that objects are of a hierarchical structure, it isimpossible to directly connect objects, which belong mutually differenthierarchies, with one another. Thus, in case of a scheme wherein awiring is permitted only in the same hierarchy via a one stagehigher-order hierarchy of objects (this is referred to as “parentobject”) including a higher-order hierarchy of objects (this is referredto as “child object”), there is a need to prepare a large number ofterminals for a relay use for the purpose of connection of objects, whenobjects to be connected are mutually far hierarchies. Thus, it takes alot of procedure for a wiring, and thus it is troublesome.

On the other hand, in the event that objects are of a hierarchicalstructure, and in case of a scheme wherein it is permitted to directlyconnect objects, which belong mutually different hierarchies, with oneanother, there will be provided a wiring diagram which does not takeinto account of a hierarchy. Thus, this raises such a problem that thewiring diagram is not so easy to see and it is difficult to grasp thewiring structure in its entirety.

Further, when there is a need to replace the object once wired byanother object, in order to implement the replacement, there is a needto remove the wiring of the previous object and do over again the wiringfor the new object. Thus, it takes a lot of procedure for thereplacement.

This is a similar as to the matter of that the object once wired on acertain hierarchy is shifted to another hierarchy, for example, a onestage lower-order hierarchy. Also in this case, it takes a lot ofprocedure such that the wiring of the object before a shift is removed,a parent object is placed wired thereat, the removed object is placed asa child object of the parent object, and a wiring between the parentobject and the child object is conducted.

Further, according to the conventional scheme, there has been associatedwith such a problem that as the interobject wiring is complicated, aconnecting relation among objects is hardly to be understood from anindication of the wiring diagram. Especially, in the event that a busrepresentative of a flow of request for processing, which bus referredto as a “instruction bus”, is connected to a plurality of objects on abranching basis, it is difficult to grasp a running sequence of theprocessing among the plurality of objects from the indication of thewiring diagram. Accordingly, it is also difficult to alter the runningsequence on the wiring diagram.

In view of problems involved in the above-mentioned interobject wiring,the embodiment, which will be described hereinafter, relates to a schemeof facilitating a wiring work.

FIG. 64 is a schematic diagram showing a basic structure of anobject-oriented programming supporting apparatus and a program storagemedium for use in an object-oriented programming according to anembodiment of the present invention.

An object-oriented programming supporting apparatus 300 supports anobject-oriented programming for coupling a plurality of objects eachhaving data and operation with each other in accordance with aninstruction. The object-oriented programming supporting apparatus 300comprises a display means 301, an object coupling means 302, ahierarchical structure construction means 303 and a handler 304.

The display means 301 displays objects each represented by a blockrepresentative of a main frame of an object, a data output terminal fortransferring data of the object to another object, a data input terminalfor receiving data from another object, a message terminal for issuing amessage to make a request for processing to another object, and a methodterminal for receiving a processing request from another object toexecute a method, the object being represented by a hierarchicalstructure which permits one or a plurality of objects to exist in asingle object, and in addition displays a wiring for coupling terminalsof a plurality of objects. On the computer system 100 shown in FIG. 1,the display means 301 is constituted of the image display unit 102, asoftware for displaying the above-mentioned objects and wirings on thedisplay screen 102 a of the image display unit 102, and a CPU forexecuting the software.

The object coupling means 302 constructs a coupling structure among aplurality of objects in accordance with an instruction for couplingterminals of the plurality of objects through a wiring. On the computersystem 100 shown in FIG. 1, the object coupling means 302 is constitutedof the software for constructing the coupling structure and a CPU forexecuting the software.

The hierarchical structure construction means 303 constructs ahierarchical structure of objects. On the computer system 100 shown inFIG. 1, the hierarchical structure construction means 303 is constitutedof the software for constructing the hierarchical structure and a CPUfor executing the software.

The handler 304 instructs a wiring for coupling among objects to theobject coupling means 302 in accordance with an operation by an operator(or user), and in addition instructs a position of an object on thehierarchical structure to the hierarchical structure construction means303. On the computer system 100 shown in FIG. 1, the handler 304 isconstituted of the keyboard 103, the mouse 104 and the software fortaking in operations of the keyboard 103 and the mouse 104 inside thecomputer system.

It is noted that the software itself for implementing the objectcoupling means 302 is also referred to as the object coupling means, andlikewise the software itself for implementing the hierarchical structureconstruction means 303 is also referred to as the hierarchical structureconstruction means. A program, in which the object coupling means 302and the hierarchical structure construction means 303 are combined inthe form of software, corresponds to the object-oriented programmingprogram referred to in the present invention. The recording medium 310,in which the object-oriented programming program is stored, correspondsto the program storage medium for use in an object-oriented programmingreferred to in the present invention. In the computer system 100 shownin FIG. 1, the storage unit 105, in which the object-orientedprogramming program has been stored, corresponds to the program storagemedium for use in an object-oriented programming referred to in thepresent invention. When the object-oriented programing program is storedin the MO 110, the MO 110 also corresponds to the program storage mediumfor use in an object-oriented programming referred to in the presentinvention.

FIG. 65 is a conceptual view showing exemplarily an involving relationamong objects. FIG. 66 is a typical illustration showing a connectingrelation among objects for defining a hierarchical structure.

As shown in FIG. 65, the whole is considered as one object, and this isreferred to as an object A. The object A includes three objects, thatis, an object B, an object C and an object D. The object C includes anobject E, an object F and an object G. The object F includes an objectH.

If this is expressed with a hierarchical structure, the expression isgiven as shown in FIG. 66. The hierarchical structure of objectsexpressed in this manner is referred to as an “object tree”.

In FIG. 66, the objects arranged in a horizontal direction implies thatthey are disposed in the same-order hierarchy. With respect to theobjects connected with each other in a vertical direction, the objectdisposed at higher-order hierarchy implies a parent object, and theobject disposed at lower-order hierarchy implies a child object of theparent object.

FIG. 67 is a typical illustration showing a pointer for determining aconnecting relation of a certain object to another object.

Each of the objects has, as pointers for defining a parent-childrelationship, “pointers to higher/lower-order hierarchy” comprising a“pointer to higher-order hierarchy” and a “pointer to lower-orderhierarchy”, and as pointers for connecting objects arranged in thesame-order hierarchy, “pointers to same-order hierarchy” comprising twopointers of a “FROM” and a “TO”. Further, each of the objects has,pointers for use in wiring representative of a flow of data andinstructions among objects, “pointers to buses” comprising two pointersof an “IN” and an “OUT”, and “pointers to cables” comprising fourpointers of an “instruction”, a “data”, a “tag instruction” and a “tagdata”.

The “pointer to higher-order hierarchy” and the “pointer to lower-orderhierarchy”, which constitute the “pointers to higher/lower-orderhierarchy”, are, for example, in case of the object A shown in FIG. 66,the pointer to the wiring editor and the pointer to the object B,respectively.

The two pointers of the “FROM” and the “TO”, which constitute the“pointers to same-order hierarchy”, are, for example, in case of theobject C shown in FIG. 66, the pointer to the object B and the pointerto the object D, respectively.

In this manner, there is constructed a hierarchical structure, forexample, as shown in FIG. 66, comprising the “pointer to lower-orderhierarchy” and the “pointers to same-order hierarchy”.

FIG. 68 is a typical illustration showing one of the bus elementsconstituting the bus element list to be connected to the “pointers tobuses” shown in FIG. 67. FIG. 69 is a typical illustration showing oneof the cable elements constituting the cable element list to beconnected to the “pointers to cables”shown in FIG. 67. FIG. 70 is atypical illustration showing exemplarily a wiring among objects.

Each of the bus elements arranged on the bus element list defines a bus(terminal) to be connected to another object. Each of the cable elementsarranged on the cable element list defines a coupling relation (wiring)between terminals of child object-to-child object when the associatedobject is given as a parent object.

FIG. 67 shows two pointers “IN” and “OUT” as pointers constitutingpointers to the bus. Connected to the pointer “IN” is the bus elementlist defining a bus which feeds data or messages to the object shown inFIG. 67. Connected to the pointer “OUT” is the bus element list defininga bus which outputs data or messages from the object shown in FIG. 67toward other object.

In FIG. 67, connected to the pointer “IN” is the bus element listcomprising two bus elements BUS 1 and BUS 2. Specifically, the buselement BUS 1 is connected to the pointer “IN”, and the bus element BUS2 is connected to the bus element BUS 1. Connected to the pointer “OUT”is the bus element list comprising two bus elements BUS 3 and BUS 4.Specifically, the bus element BUS 3 is connected to the pointer “OUT”,and the bus element BUS 4 is connected to the bus element BUS 3.

As shown in FIG. 68, each of the bus elements comprises a “pointer tosubstantial object”, “pointer to bus of substantial object”, “pointer tonext bus element (BUS)” and “other data”. It is noted that a terminal ofan object is referred to as a “bus”.

In the arrangement shown in FIG. 70, in the event that the object shownin FIG. 67 is object A shown in FIG. 70, the bus element BUS 1corresponds to, for example, “BUS 1” of the object A shown in FIG. 70,and the “pointer to substantial object” corresponds to a pointer to anobject (here object B) connected to BUS 1 of object A, of object B andobject C included in object A shown in FIG. 70. The “pointer to bus ofsubstantial object” of the bus element BUS 1 corresponds to a pointer toa bus (in case of FIG. 70, BUS 1, of object B) of object B as thesubstantial object, which bus is connected to “BUS 1” of the object A.The “pointer to next bus element (BUS)” constituting the bus element BUS1 corresponds, in case of the bus element BUS 1 in FIG. 67, to a pointerto the bus element BUS 2. The “other data” constituting the bus elementBUS 1 includes a distinction as to whether the bus (in this case, “BUS1” of the object A shown in FIG. 70) associated with the bus element isa bus for transfer of data or a bus for transfer of a message (orinstruction). Incidentally, as to an identification between a bus (IN)at the end of receiving data or instruction and a bus (OUT) at the endof transmitting data or instruction, as shown in FIG. 67, it isimplemented by separating the “pointers to buses” into “IN” and “OUT”.

In FIG. 67, “pointers to cables” comprises four pointers, that is,“instruction”, “data”, “tag instruction”, and “tag data”, to each ofwhich a cable element list is connected. FIG. 67 exemplarily shows onlya cable element list connected to the “data”. Connected to the “data” isdirectly a cable element CABLE 1. Connected to the cable element CABLE 1is a cable element CABLE 2. And connected to the cable element CABLE 2is a cable element CABLE 3.

The “pointers to cables” is used for management of a connecting state(wiring) of buses of child object-to-child object by a parent object. Inthe example shown in FIG. 70, the wiring of buses between the object Band the object C is managed. Incidentally, the wiring between the objectA as a parent object and the object B as a child object, or the wiringbetween the parent object A and the object C as a child object ismanaged, as mentioned above, by the bus element list connected to the“pointers to buses”.

The four pointers, that is, “instruction”, “data”, “tag instruction”,and “tag data”, which constitute the “pointers to cables”, manage awiring indicative of a flow of messages (instruction), a wiringindicative of a flow of data, a wiring indicative of a flow of aninstruction, which is formed dynamically during an execution, asmentioned above, and a wiring indicative of a flow of data, which isformed dynamically during an execution, respectively.

As shown in FIG. 69, a cable element “CABLE” is associated with twoterminal elements “TERMINAL”. The cable element “CABLE” comprises apointer to the first terminal element of the two terminal elements“TERMINAL”, and a pointer to the next cable element. The terminalelement “TERMINAL” comprises a “pointer to an object”, a “pointer to abus of the object”, and a “pointer to the next terminal pointer”.

FIG. 69 shows exemplarily a cable element for managing a wiring forconnecting the bus 2 of the object B with the bus 1 of the object C,shown in FIG. 70, in which the first terminal element stores therein apointer to an object B and a pointer to a bus 2 of the object B, and thesecond terminal element stores therein a pointer to an object C and apointer to a bus 1 of the object C. In this manner, the bus 2 of theobject B and the bus 1 of the object C are coupled with each otherthrough the wiring. It is noted that the first terminal element of thetwo terminal elements is associated with the bus of the output end ofdata or instruction, and the second terminal element is associated withthe bus of the input end of data or instruction.

The cable element shown in FIG. 69 is managed, as mentioned above, bythe object A which is a common parent object for both the objects B andC.

The above are the general explanations of a management of pointers fordetermining a hierarchical structure of objects, a management ofpointers for determining buses of objects, and a management of pointersfor determining a wiring for connecting buses of objects. Next, therewill be explained more specific embodiments of the object-orientedprogramming supporting apparatuses according to the present invention,and programs for an object-oriented programming, which are stored in aprogram storage mediums for use in an object-oriented programmingaccording to the present invention.

According to the first object-oriented programming supporting apparatusof the object-oriented programming supporting apparatuses according tothe present invention, and programs for an object-oriented programming,which are stored in the first program storage medium for use in anobject-oriented programming, of the program storage mediums for use inan object-oriented programming according to the present invention, thehierarchical structure construction means 303 shown in FIG. 64 has meansfor producing a duplicate object of a substantial object designated inaccordance with an instruction from the handler 304, and for disposingthe duplicate object at a hierarchy different from a hierarchy at whichthe substantial object is disposed, and the object coupling means 302receives from the handler 304 an instruction as to a wiring between theduplicate object and another object in the wiring of the hierarchicalstructure in which the duplicate object is disposed, and constructs acoupling structure in which the duplicate object and the associatedsubstantial object are provided in the form of a united object.

FIG. 71 is a conceptual view of a duplicate object. FIG. 72 is a typicalillustration showing a hierarchical structure (object tree) of theobjects shown in FIG. 71.

An object A is connected to an wiring editor. Connected to the object Ais an object B in a lower-order hierarchy. Connected to the object B isan object C in the same-order hierarchy. Connected to the object C is anobject D in a lower-order hierarchy. Connected to the object D is anobject E in the same-order hierarchy.

In the event that the objects B and E, which are disposed at mutuallydifferent hierarchy, are connected with each other through a wiring, itis acceptable that a bus (terminal) is formed on the object C which is aparent object of the object E, and the terminal of the object C isconnected to the bus of the object E, and in addition the terminal ofthe object, C is connected to the terminal of the object B. However,this work takes a trouble for wiring. In order to avoid such a trouble,according to the present embodiment, a duplicate object E′ of which thesubstantial object is the object E is disposed at the hierarchy at whichthe objects B and D are disposed, and the bus of the duplicate object E′is connected to the bus of the object B through a wiring on thehierarchy at which the object B and the duplicate object E′ aredisposed.

FIG. 73 is a flowchart useful for understanding a building process forthe duplicate object.

First, in step 73_1, with respect to the designated object (e.g. objectE), a duplicate object E′ is built through copying the object E. Here awiring among objects is aimed. Thus, there is no need to copy even thesubstance of the program constituting the object E and only informationnecessary for a display and a wiring of objects is copied. In thismeaning, the “copy” referred to as the present invention means a copy ofinformation necessary for a display and a wiring of objects.

Next, in step 73_2, with respect to all buses ;of the object E,

1. a copy bus (copy bus element) is created on the duplicate object E′,and

2. a pointer to the substantial object E and a pointer to the busassociated with the substantial object E, are written.

FIG. 74 is a typical illustration showing a connecting relation betweenthe substantial object (original) and the duplicate object (copy).

Copied on the duplicate object E′ are the bus elements BUS 1, BUS 2, . .. arranged in the “pointers to buses” of the substantial object E in theform of an arrangement as it is. Each of the bus elements BUS 1′, BUS2′, . . . of the duplicate object E′ copied stores a pointer to thesubstantial object E and a pointer to the associated bus, of thesubstantial object E (cf. FIG. 68). After the duplicate object is builtin this manner, when a wiring between the object B and the duplicateobject E′ is instructed, as shown in FIG. 71, the associated cableelement and two terminal elements are arranged on the “pointers tocables” of the object A which is a parent object of the object B and theduplicate object E′ (cf. FIG. 69).

After a wiring work, and when wiring data for interpreter use, which isstored in the wiring data for interpreter use shown in FIG. 2, isgenerated, the associated bus element of the substantial object E isfound from the bus element list of the duplicate object E′ to constructan interobject coupling structure in which the duplicate object E′ andthe substantial object E are formed in a united body as one object.

Next, there will be explained embodiments of the second object-orientedprogramming supporting apparatus of the object-oriented programmingsupporting apparatuses according to the present invention, and programsfor an object-oriented programming, which are stored in the secondprogram storage medium for use in an object-oriented programming, of theprogram storage mediums for use in an object-oriented programmingaccording to the present invention.

According to the second object-oriented programming supporting apparatusof the object-oriented programming supporting apparatuses according tothe present invention, and programs for an object-oriented programming,which are stored in the second program storage medium for use in anobject-oriented programming, of the program storage mediums for use inan object-oriented programming according to the present invention, theobject coupling means 302 shown in FIG. 64 releases a coupling structureof the object before a replacement with another object in accordancewith an instruction from the handler 304, and causes the object afterthe replacement to succeed to the coupling structure of the objectbefore the replacement with another object, and the hierarchicalstructure construction means 303 disposes the object after thereplacement, instead of the object before the replacement, at ahierarchy at which the object before the replacement is disposed.

FIG. 75 is a conceptual view showing a coupling relation of objectsbefore a replacement of objects. FIG. 76 is a typical illustrationshowing an object tree concerning the objects shown in FIG. 75.

An object A is connected to an wiring editor. Connected to the object Ais an object B in a lower-order hierarchy. Connected to the object B isan object C in the same-order hierarchy. Connected to the object C is anobject D in the same-order hierarchy. There exists an object E which isnot incorporated into the hierarchical structure. The object C isreplaced by the object E.

FIG. 77 is a conceptual view showing a coupling relation of objectsafter a replacement of objects. FIG. 78 is a typical illustrationshowing a part of the object tree after a replacement of objects.

When the object C is replaced by the object E, the object E succeeds tothe wiring of the object C as it is. Also in the hierarchical structure,the object E is disposed at the hierarchy at which the object C wasdisposed.

FIG. 79 is a flowchart useful for understanding an object replacingprocess.

While an interobject network as shown in FIG. 75 is displayed on thedisplay screen 102 a (cf. FIG. 1), the mouse 104 is operated to drag anobject after replacement (here, the object E) and superimpose the objectE on the object C Where the term drag means such an operation that amouse cursor is placed on the object E displayed on the display screen102 a and a mouse button is depressed, and then a mouse is moved keepingdepression of the mouse button. When the the object E is dragged, theobject coupling means 302 shown in FIG. 64 identifies that the draggedobject is the object E (step 79_2).

When the dragged object E is superimposed on the object C and thendropped, that is, the mouse button is released, in step 79_3, the objectcoupling means 302 identifies that the object concerned in drop is theobject C (step 79_4). In this manner, when it is identified that thedragged object is the object E and the object concerned in drop is theobject 0, the object tree is altered from the state shown in FIG. 76 tothe state shown in FIG. 78.

This change is implemented in which a manner that, of the pointers ofthe objects shown in FIG. 76, the pointer to the object E is written,instead of the pointer to the object C, into “TO” of the object B; thepointer to the object B and the object E are written into “FROM” and“TO” of the object E, respectively; and the pointer to the object E iswritten, instead of the pointer to the object C, into “FROM” of theobject D.

Next, the wiring of the object C concerned in drop is retrieved from thecable element list of the object A which is a parent of the object Cconcerned in drop (step 79_6).

FIG. 80 is a typical illustration showing a part of the cable elementlist connected to an object A.

It is recorded in this part that the bus 3 of the object C and the bus 4of the object D are connected to the terminals indicated by the cableelement CABLE a. In this manner, the cable elements are sequentiallyretrieved to identify the wiring connected to the object concerned indrop.

When the wiring connected to the object concerned in drop is identified,as shown in FIG. 80, the wiring is released and connected to theassociated bus of the object E after replacement (step 79_7). When theassociated bus of the object E after replacement does not exist and thewire cannot be altered, it is displayed on the display screen 102 a andthe wiring is cancelled.

Next, there will be explained embodiments of the third object-orientedprogramming supporting apparatus of the object-oriented programmingsupporting apparatuses according to the present invention, and programsfor an object-oriented programming, which are stored in the thirdprogram storage medium for use in an object-oriented programming, of theprogram storage mediums for use in an object-oriented programmingaccording to the present invention.

According to the third object-oriented programming supporting apparatusof the object-oriented programming supporting apparatuses according tothe present invention, and programs for an object-oriented programming,which are stored in the third program storage medium for use in anobject-oriented programming, of the program storage mediums for use inan object-oriented programming according to the present invention, thehierarchical structure construction means 303 is in response to aninstruction from the handler 304 such that a plurality of objects fromamong the objects disposed at a predetermined hierarchy are designatedand the plurality of objects are rearranged on the lower-order hierarchyby one stage, and rearranges the plurality of objects on the lower-orderhierarchy by one stage, and produces and arranges an object includingthe plurality of objects on the predetermined hierarchy in such a mannerthat a coupling structure among the plurality of objects and a couplingstructure among the plurality of objects and objects other than theplurality of objects are maintained.

FIG. 81 is a conceptual view showing a coupling relation among objectsbefore a movement of objects. FIG. 82 is a typical illustration showingan object tree concerning the objects shown in FIG. 81.

As shown in FIG. 82, an object A is connected to an wiring editor.Connected to the object A is an object B in a lower-order hierarchy.Connected to the object B is an object C in the same-order hierarchy.Connected to the object C is an object D in the same-order hierarchy.Connected to the object D is an object E in the same-order hierarchy.

It is assumed that the interobject network as shown in FIG. 81 isdisplayed on the display screen 102 a, and the mouse 104 is operated toselect the object C and the object D as the objects to be moved to thelower-order hierarchy by one stage.

FIG. 83 is a conceptual view showing a coupling relation of objectsafter a movement of objects. FIG. 84 is a typical illustration showingan object tree concerning the objects shown in FIG. 83.

An object F is built on the same hierarchy as that of an object B. Anobject C and an object E are arranged on a lower-order hierarchy of theobject F in the form of children objects of which a parent is the objectF.

Before a movement, as shown in FIG. 81, the bus 3 of the object B isdirectly connected to the bus 1 of the object C. After a movement,however, as shown in FIG. 83, the bus 3 of the object B is connected tothe bus 1 of the object F, and the bus 1 of the object F is connected tothe bus 1 of the object C. And with respect to a connection of theobject D with the object E, the bus 3 of the object D is connected tothe bus 2 of the object F, and the bus 2 of the object F is connected tothe bus 1 of the object E.

FIG. 85 is a flowchart useful for understanding a processing for amovement of objects and a change of wiring of objects.

When the object, which is to be moved to a lower-order hierarchy by onestage, is selected, it is identified as to what objects (here, objects Cand D shown in FIG. 82) have been selected (step 85_1). And a new object(here, object F) is built on the same hierarchy as the selected objects(step 85_2). In step 85_3, the selected objects (here, objects C and D)are replaced by the new object (object F).

FIG. 86 is a typical illustration showing a state of an alteration of anobject tree.

In step 85_2, when the object F is built, the connection between theobject B and the object C is cancelled, and the object B is connected tothe object F in the same-order hierarchy. And the connection between theobject D and the object E is cancelled, and the object F is connected tothe object E in the same hierarchy. And the object C is connected to theobject F in the lower-order hierarchy. In this manner, the object treeafter an object movement, as shown in FIG. 84, is completed.

Incidentally, it is noted that the alternation of the pointer for thealternation of the object tree can be performed in a similar fashion tothat of the explanation made referring to FIG. 78, and thus theredundant explanation will be omitted.

Next, as shown in step 85_4 of FIG. 85, the wiring connected to theselected objects (objects B and C) is retrieved from the cable elementlist connected to the parent object (object A) of the selected objects(objects B and C).

FIG. 87 is a typical illustration showing a part of the cable elementlist connected to the object A.

In FIG. 87, there are shown that the wiring of the bus 4 of the object Cand the bus 1 of the object D are made on the cable element CABLEa, andthat the wiring of the bus 3 of the object D and the bus 1 of the objectE are made on the cable element CABLEb. Here, it is noted that thewiring of the bus 4 of the object C and the bus 1 of the object D shownon the cable element CABLEa is typically representative of the wiringbetween the objects (objects B and C) selected to be moved to thelower-order hierarchy by one stage, as shown in FIG. 81, and the wiringof the bus 3 of the object D and the bus 1 of the object E shown on thecable element CABLEb is typically representative of the wiring betweenthe object (object D) to be moved to the lower-order hierarchy by onestage and the object (objects E) not to be moved and to stay at thesame-order hierarchy.

In the step 85_4 of FIG. 85, when the retrieval of the cable elementlist is carried out as mentioned above, the process goes to step 85_5 inwhich it is determined whether the wiring connected to the selectedobjects (here objects B and C) located through the retrieval is thewiring between the objects (objects B and C) inside of the new object(object F), or the wiring between the internal object and the externalobject with respect to the the new object (object F). In thisdetermination, when it is determined that the wiring of interest is thewiring (corresponding to the wiring of the cable element CABLEa shown inFIG. 87) between the objects inside of the new object (object F), theprocess goes to step 85_6 in which the wiring is moved from the parentobject (object A) to the new object (object F).

FIG. 88 is an explanatory view useful for understanding a movement ofwiring to a new object.

The cable element CABLEa is removed from among the cable element listconnected to the object A, and is incorporated into the cable elementlist connected to the object F.

In the step 85_5 of FIG. 85, when it is determined that the wiring ofinterest is the wiring (corresponding to the wiring of the cable elementCABLEb shown in FIG. 87) between the internal object and the externalobject with respect to the the new object (object F), the process goesto step 85_7 in which a wiring bus is produced on the new object (objectF).

FIG. 89 is a typical illustration of a bus for use in wiring, the busbeing built on an object F.

In FIG. 89, a bus element BUS 2 is connected to “OUT” (cf. FIG. 67) ofthe object F. The bus element BUS 2 corresponds to the bus 2 of theobject F shown in FIG. 83, and has a pointer to the object D and apointer to the bus 3 of the object D. That is, the bus element BUS 2forms, as shown in FIG. 83, a wiring between the bus 2 of the object Fand the bus 3 of the object D. It is to be noted that the bus elementBUS 2 shown in FIG. 89 is exemplarily shown, and in case of the wiringshown in FIG. 83, a connecting bus element is disposed also in “IN” ofthe object F so that a wiring between the bus 1 of the object F and thebus 1 of the object C is implemented.

In step 85_8 of FIG. 85, a wiring connected to the object inside a newobject (object F) is changed in connection to the new object (object F).

FIG. 90 is a typical illustration showing a state of a change of anobject in wiring from an object (object D) inside a new object (objectF) to the object F.

The cable element CABLEb of the object A shown in FIG. 87 is indicativeof a wiring between the bus 3 of the object D inside the object F and awiring between the bus 1 of the object E outside the object F. As shownin FIG. 90, the bus 3 of the object D is changed to the bus 2 of theobject F thereby forming a wiring between the bus 2 of the object F andthe bus 1 of the object E.

Incidentally, the step 85_4 in FIG. 85 is repeatedly performed by anecessary number of times.

Next, there will be explained embodiments of the fourth object-orientedprogramming supporting apparatus of the object-oriented programmingsupporting apparatuses according to the present invention, and programsfor an object-oriented programming, which are stored in the fourthprogram storage medium for use in an object-oriented programming, of theprogram storage mediums for use in an object-oriented programmingaccording to the present invention.

According to the fourth object-oriented programming supporting apparatusof the object-oriented programming supporting apparatuses according tothe present invention, the display means 301 shown in FIG. 64 has, incase of existence of a plurality of method terminals (messages orinstructions) connected to one message terminal (a bus for outputting amessage or an instruction) designated in accordance with an instructionthrough the handler 304, means for displaying a list indicative of anexecution sequence of a plurality of methods associated with theplurality of method terminals, and the object coupling means 302 hasmeans for reconstructing a coupling structure in which the executionsequence of the plurality of methods appearing at the list displayed onthe display means 301 are altered.

Further, according to programs for an object-oriented programming, whichare stored in the fourth program storage medium for use in anobject-oriented programming, of the program storage mediums for use inan object-oriented programming according to the present invention, theobject coupling means 302 has, in case of existence of a plurality ofmethod terminals connected to a designated one message terminal, meansfor making up a list indicative of an execution sequence of a pluralityof methods associated with the plurality of method terminals, and meansfor reconstructing a coupling structure in which the execution sequenceof the plurality of methods are altered in accordance with an alterationinstruction of the execution sequence of the plurality of methodsappearing at the list.

FIG. 91 is a typical illustration showing exemplarily a wiring amongobjects. FIG. 92 is a typical illustration showing a cable element listgiving a definition of the wiring shown in FIG. 91.

According to the example shown in FIG. 91, an object A includes anobject B, an object C, an object D and an object E. A bus 1 of theobject B is connected to a bus 2 of the object C, a bus 2 of the objectD and a bus 1 of the object E. Where the bus 1 of the object B serves asa bus (message terminal) for outputting an instruction, and each of thebus 2 of the object C, the bus 2 of the object D and the bus 1 of theobject E serves as a bus (method terminal) for receiving an instruction.

A wiring among these elements is defined, as shown in FIG. 92, by acable element list connected to the object A (parent object). A numberof cable elements are listed on the cable element list shown in FIG. 92.Of those cable elements, a cable element CABLEa defines a wiring betweenthe bus 1 of the object B and the bus 2 of the object C, a cable elementCABLEb defines a wiring between the bus 1 of the object B and the bus 2of the object D, and a cable element CABLEc defines a wiring between thebus 1 of the object B and the bus 1 of the object E.

An instruction (message) outputted from the object B is transmitted tothree objects C, D and E in each of which the associated method isexecuted. In this case, however, it happens that a problem as to anexecution sequence among those methods is raised. For example, assumingthat the object B serves as an object for inputting data from theexterior, the object C serves as an object for performing an arithmeticoperation based on the data inputted, the object D serves as an objectfor making a graph based on a result of the operation, and the object Eserves as an object for displaying the graph, there is a need to executethe respective methods in the order named of the object C, the object Dand the object E in accordance with an instruction indicative of thatinputting of the data from the object B is completed.

Here, the wiring shown in FIG. 91 is unclear as to the executionsequence, and consequently, the execution sequence is displayed in thefollowing manner and if necessary the execution sequence is altered.

FIG. 93 is a flowchart useful for understanding processings for adisplay of an execution sequence for methods and for an alteration ofthe execution sequence for the methods.

First, for example, while an image as shown in FIG. 91 is displayed, adesired wiring (here, the wiring shown in FIG. 91) is clicked throughthe mouse 104 to select the wiring of interest. In step 93_1, the objectcoupling means 302 identifies the selected wiring. In step 93_2, a cablelist as to the selected wiring (cable) thus identified is made up anddisplayed.

FIG. 94 is a typical illustration showing a cable list element list.

When the cable list is made up, a cable element list of the parentobject (object A) shown in FIG. 92 is retrieved, the cable elementsCABLEa, CABLEb and CABLEc, which constitute the selected wiring, areidentified, and pointers to cable elements are stored in cable listelements constituting the cable list element list shown in FIG. 94 inthe order listed in the cable element list. That is, in case of thepresent example, the pointers to three cable elements CABLEa, CABLEb andCABLEc, which constitute the selected wiring, shown in FIG. 92, arestored in the order named in the respective associated cable listelements arranged in the cable list element list shown in FIG. 94.

FIG. 95 is a view exemplarily showing a cable list displayed on adisplay screen 102 a.

When the cable list element list as shown in FIG. 94 is made up, a stateof the respective wiring for coupling two objects with each other isdisplayed with an arrangement according to the order listed in the cablelist element list. Specifically, according to the example shown in FIG.95, it is displayed on the first line that the bus 1 of the object B isconnected to the bus 2 of the object C; it is displayed on the secondline that the bus 1 of the object B is connected to the bus 2 of theobject D; and it is displayed on the third line that the bus 1 of theobject B is connected to the bus 1 of the object E. Where the line isreferred to as a “list item”. The left side of the cable list denotes abus of the end for generating an message (instruction), and the rightside of the cable list denotes a bus of the end for receiving andexecuting the message (instruction) generated. In the practicaloperation, when the bus 1 of the object B issues the associated message(instruction), the respective methods are executed in accordance withthe sequence shown in the cable list.

In step 93_3 in FIG. 93, it is assumed that a line of list itemindicated in the display list is dragged. Here it is assumed that thelist item “object B: bus 1 object E: bus 1” appearing on the third lineof the cable list shown in FIG. 95. In step 93_4, the object couplingmeans 302 (cf. FIG. 64) identifies that a wiring for connecting the bus1 of the object B to the bus 1 of the object E, that is, the wiringdefined by the cable element CABLEc shown in FIG. 92 is dragged. In step93_5, the dragged list item is dropped. Where it is assumed that thedragged list item is dropped on the second list item “object B: bus 1object D: bus 2” of the cable list shown in FIG. 95. In step 93_6, theobject coupling means 302 identifies that the wiring concerned in dropis a wiring for connecting the bus 1 of the object B to the bus 2 of theobject D, that is, the wiring defined by the cable element CABLEb shownin FIG. 92.

Thus, when the dragged wiring and the wiring concerned in drop areidentified, an arrangement sequence or the execution sequence is alteredin such a manner that the dragged wiring is arranged before the wiringconcerned in drop on the cable list shown in FIG. 95 (step 93_7).

FIG. 96 is a typical illustration showing a state in which anarrangement sequence of the cable elements arranged on the cable elementlist is altered. FIG. 97 is a typical illustration showing a cableelement list in which an arrangement sequence of the cable elements hasbeen altered.

As shown in FIG. 69, each of the cable elements CABLE has a pointer tothe next cable element. Thus, when the drag and drop operations for thelist item are performed in the manner as mentioned above, the pointer isrewritten. In this example, as shown in FIG. 96, an arrangement sequenceof the cable elements is altered in such a manner that the cable elementCABLEc is arranged before the cable element CABLEb, and thus the cableelement list, in which the cable elements are arranged as shown in FIG.97, is made up.

FIG. 98 is a typical illustration showing a state in which anarrangement sequence of the cable list elements arranged on the cablelist element list is altered. FIG. 99 is a typical illustration showinga cable list element list in which an arrangement sequence of the cablelist elements has been altered.

When the drag and drop operations for the list item are performed in themanner as mentioned above, an arrangement sequence of the cableelements, in which the cable elements are arranged in the cable elementlist as shown in FIG. 96, is altered. Following this, an arrangementsequence of the cable list elements, in which the cable list elementsare arranged in the cable list element list as shown in FIG. 98, isaltered. According to this example, an arrangement sequence of the cablelist elements is altered in such a manner that the cable list elementstoring therein the pointer to the cable element CABLEc is arrangedbefore the cable list element storing therein the pointer to the cableelement CABLEb, so that the cable list element list shown in FIG. 99 ismade up.

FIG. 100 is a view showing a cable list in which an arrangement sequencehas been altered.

As a result of alterations of the arrangement sequences of the cableelements and the cable list elements as mentioned above, the cable listfor a display is also altered in a sequence of the list item, as shownin FIG. 100.

The above is an explanation of the embodiments of the interobject wiringeditor unit 122 and its periphery. Next, there will be explained anexplanation of the embodiments of the object builder unit 121 and itsperiphery.

The object ware programming system aims to perform an efficientprogramming through replacing programs by objects. For this reason, itis very important as to whether the existing software can be readilyreplaced by an object. Particularly, if it is possible to directlyreplace the existing software by an object, the number of the availableobjects is dramatically increased all at once, and as a result, aprogram development efficiency is extremely improved. Hitherto, therehave been proposed several types of methods in which the existingsoftware is replaced by an object. An OLE and a DDE in Windows areraised by way of example. However, according to those methods, it isneeded to estimate beforehand at the existing software end that theexisting software is replaced by an object. And thus, it is difficult toreplace all of the existing softwares by objects. Further, even if theassociated existing softwares are concerned, many of those softwares areinvolved in one which is very few in number of messages to be acceptableas compared with, for example, that of the graphical user interface.Accordingly, it is impossible to handle the existing softwares in asimilar fashion to that of the graphical user interface.

With respect to a continuous operation for the existing softwares,hitherto, there is known a method in which a description is performed bythe shell script. However, according to the earlier technology, it isdifficult to perform an operation for the software after the actuationin a similar fashion to that of the graphical user interface. Further,with respect to the description of the shell script, it must beperformed by a user self and thus it will be difficult for a beginneruser poor in experience of a programming to do so.

In view of the problems on building the objects as mentioned above, theembodiments, which will be described *hereinafter, relate to a scheme ofreplacing the existing software by an object independently of types ofthe existing software, and a component which serves as an object incombination with the existing software. Here, there will be described,with the existing software having the graphical user interface as a mainsoftware, a scheme of replacing the existing software by an object, anda component which serves as an object in combination with the existingsoftware.

A corresponding relation between the component described hereinafter andthe present invention is as follows.

When the component, which will be described hereinafter, is stored inthe storage unit 105 of the computer system 100 shown in FIG. 1, thestorage unit 105 storing the component corresponds to one example of thecomponent storage medium referred to in the present invention. In a casewhere the component is stored in the MO 110 shown in FIG. 1, the MO 110storing the component corresponds to an alternative example of thecomponent storage medium referred to in the present invention.

FIG. 101 is a typical illustration showing an embodiment of a component“including” an existing software having a graphical user interface.

In FIG. 101, an application A is an existing software in which whileicons such as “button 1”, “button 2”, and “button 3” are displayed onthe display screen 102 a (cf. FIG. 1), anyone of those icons is clickedthrough an operation of the mouse so that a processing associated withthe clicked icon is executed.

A window management unit manages a graphical user interface of allapplications incorporated into the system, including the application A.For instance, if it is a Windows, the window management unit denotes aWindows system itself. A component A “including” the application A has abasic structure as an object, for connecting with other objects, and inaddition data related to the application A. The component A has furtheras a method an application drive program and a window event generationprogram (e.g. a button 1 click event issue program for executing theequivalence to such a matter that a user clicks the button 1 through anoperation of the mouse 104). When a message is transmitted from anotherobject to an application A drive method of the component A, the methodis executed to drive the application A so that information (e.g. IDinformation and the like) related to the window is read and thecomponent A maintains the window information.

Further, when a message is transmitted from another object (or one's ownself) to a method which issues an event such as a button click or thelike, the associated event is issued through the window management unitto the window of the application A in accordance with the event issueprogram described in the method which received the massage.

In this case, it is possible to replace the existing application by anobject by means of simply adding the component A, maintaining theexisting application A as it is.

FIG. 102 is a typical illustration showing an alternative embodiment ofa component “including” an existing software having a graphical userinterface.

In the embodiment explained referring to FIG. 101, added to the last ofthe event generation program for the existing application A, theexisting software and the like is a program for issuing a message toinform other object of that an execution of the method is finished. Themessage thus issued is connected to a method of other component or otherobject. Thus it is possible to execute a plurality of methods on a chainbasis. In FIG. 102, the existing software is omitted, and there is shownthe state that the messages of the component A are connected to themethods of the components B and C.

FIG. 103 is a typical illustration showing a further alternativeembodiment of a component including an existing software having agraphical user interface.

The component shown in FIG. 103 is an example of a component having sucha function that events for the existing software are monitored and whena predetermined event is issued, the associated message is issued.

When a method for driving an application A of a component A being anexisting software receives a message, the method is executed to drivethe application A. The component A has a function to monitor all windowevents and investigates as to whether the issued event is involved inthe application A. When it is identified that the issued event isinvolved in the application A, the component A issues a message forinforming another object (or one's own self) of the fact that the eventwas issued for the application A. For example, when the icon “button 1”of three icons “button 1”, “button 2” and “button 3” related to theapplication A, which are displayed on the display screen 102 a, isclicked through an operation of the mouse 104 by a user, the component Aidentifies that the icon “button 1” of the application A was clicked,and issues a message for informing that the button 1 was clicked.

In this manner, it is possible, upon receipt of an issue of the event ofan existing software, to execute on a cooperative basis a method whichdoes not appear on a specification of the existing software, withoutadding advanced functions to the existing software.

FIG. 104 is a typical illustration showing a structure of an eventprocessing portion of the window management section shown in FIG. 103.FIG. 105 is a typical illustration showing a structure of an eventmonitor portion of the component A shown in FIG. 103.

The event processing portion of the window management section is a partin which upon receipt of the issue of an event, a processing associatedwith the event is carried out. The event processing portion has an eventprocessing element list consisting of a plurality of event processingelements each storing therein pointers to various types of eventprocessing functions. When a window event is generated, the eventprocessing functions indicated by the pointers stored in each of theevent processing elements are sequentially executed. The eventprocessing element, which is arranged at the last of the eventprocessing element list, indicates a default event process function. Thedefault event process function serves, for example, when a button isclicked, to perform such a processing that a button on the displayscreen is moved as if the button on the display screen is depressed.

At the last of a drive method of the application A of the component Ashow in FIG. 103, there is described a program for requesting the windowmanagement unit to transmit the window event to one's own self(component A). Specifically, the event processing element, which storestherein a pointer to an event monitor portion of the component A, isadded to the event processing list possessed by the event processingportion of the window management unit. In this manner, it is possiblethereafter to refer to the occurred event at the event monitor portionof the component A, whenever the window event occurs.

The event monitor portion of the component A stores an event table shownin FIG. 105 in which described are a window ID for defining eventsconcerning the application A, an event ID, other data, and a messageissued when the event issued, in their corresponding relation.

When any of the window events occurs and event data related to theoccurred window event is inputted through the window management unitshown in FIG. 104 to the event monitor portion of the component A, theevent table is referred to by the window ID and the event ID of theevent data to retrieve as to whether a window ID and an event ID, whichmatch the window ID and the event ID of the event data, respectively,exist in the event table. When it is determined that a window ID and anevent ID, which match the window ID and the event ID of the event data,respectively, exist in the event table, the component A issues a messageassociated with the matched window ID and event ID.

FIG. 106 is a basic construction view of a component builder apparatusaccording to the present invention.

The component builder apparatus 400 comprises a first handier 401, asecond handler 401 and a component builder means 403.

The first handler 401 serves to selectively indicate making of methodsand messages.

The second handler 402 serves to input an instruction of an issue of adesired event of a predetermined existing software.

It is to be noted that while the first handler and the second handlerare functionally separately distinguished from one another, it isacceptable that these handlers are constructed in form of a united bodyon a hardware basis. In the computer system shown in FIG. 1, the mouse104 typically corresponds to both the first handler and the secondhandler.

The component builder means 403 builds a component which serves as oneobject in combination with an existing software. Specifically, thecomponent builder means 403 serves, when making of a method isinstructed by an operation of the first handler 401 and a predeterminedevent of the existing software is issued by an operation of the secondhandler 402, to make on the component a method which fires with amessage issued by another object and issues the event, and serves, whenmaking of a message is instructed by an operation of the first handler401 and an issue of a predetermined event of the existing software isinstructed by an operation of the second handler 402, in response to anoccurrence of the event, to make on the component a message forinforming other objects of the fact that the event occurred.

The component builder means 403 corresponds to the object builder unit121 of the object ware programming system 120 shown in FIG. 2.

FIG. 107 is a typical illustration useful for understanding anembodiment of a component builder apparatus according to the presentinvention. FIG. 108 is a flowchart useful for understanding processingsof building a component using a component builder apparatus.

An object builder portion 121 has a program 121 a for building acomponent “including” or “involving” an existing software, which servesas one object together with the existing software. In step 108_1, theexisting software (here application A) “included” from the program isdriven in accordance with an instruction from a user. In step 108_2,window information of the application A is obtained and maintained.

Next, in step 108_3, the user makes a selection as to whether a methodor a message is added to the component “including” the drivenapplication A, and further makes a selection as to types of events (forexample, a distinction between the button click and the menu click). Theselection between the method and the message mentioned above is carriedout in accordance with such a way that either one of the icons of amethod and a message on the display screen is clicked by the mouse. Aname of the method or the message to be added is registered into theselected column through an operation of the keyboard.

In step 108_4, an occurrence of events is monitored. When an event isgenerated by the button click or the like using a mouse (step 108_5), itis determined as to whether the generated event relates to a window ofthe application A (step 108_6). Further, in step 108_7, it is determinedas to whether the generated event is the same type of event as the type(e.g. a distinction between the button click and the menu click) of theevent selected in step 108_3.

With respect to the mechanism (functions of the window management unitand the event monitor portion) for determining as to whether thegenerated event is a desired event, it is the same as that explainedreferring to FIGS. 103 to 105. Thus, the redundant explanation will beomitted.

When the generated event is concerned with the window of the applicationA and in addition is of the same type as the selected event, the eventis added to the component A in the form of the method or the message inaccordance with a distinction between the method and the messageselected in step 108_3 together with the type of event. In other words,there is added a program such that when a message is received fromanother object at the component A “involving” the application A, amethod of causing the event to generate is created, or when the event isgenerated, a message, which stands for that the event is generated, isinformed to another object.

The above-mentioned operation is continued until a user gives aninstruction for termination of monitoring an event (step 108_9). Uponreceipt of the event monitoring termination instruction given by theuser, the application (application A) now on drive is terminated indrive. Further, with respect to an object comprising the application Aand the component A “involving” the application A, object data fordisplay and wiring as to such an object is created and stored in theobject data file 132, and the object is compiled to create runningobject data and the running object data is stored in the running objectfile 133. In this manner, the component “involving” a desired existingsoftware is built on an interactive basis.

Next, there will be explained embodiments of the fifth object-orientedprogramming supporting apparatus of the object-oriented programmingsupporting apparatuses according to the present invention.

FIG. 109 is a construction view of an object ware programming system inwhich structural elements corresponding to the embodiment of the fifthobject-oriented programming supporting apparatus according to thepresent invention are added to the object ware programming system 120shown in FIG. 2. In FIG. 109, the same parts are denoted by the samereference numbers as those of FIG. 2, and the redundant description willbe omitted.

An object ware programming system 120 shown in FIG. 109 comprises, inaddition to the structural elements of the object ware programmingsystem 120 shown in FIG. 2, an event log generating unit 141, acomponent coupling unit 142, an event log file 151 and a component file152.

According to the embodiments of the component builder apparatusexplained referring to FIGS. 107 and 108, the built component is storedin the object data file 132 and the running object file 133. On thecontrary, according to the present embodiment shown in FIG. 109, whileit is the same as the former embodiment with respect to the runningobject file, data for display and wiring of the built component isstored in the component file 152 instead of the object data file 132. Itis to be noted that for the purpose of better understanding, thecomponent file 152 is formed independently of the object data file 132,but it is acceptable that the component file 152 and the object datafile 132 are constructed in the form of united body.

First, in accordance with the scheme explained referring to FIGS. 107and 108, upon receipt of a message, an event of an existing software isissued, and a component, which outputs it in the form of a message thatthe event is issued, is built on each of a plurality of existingsoftwares and stored in the component file 152.

Next, a user drives simultaneously or sequentially those existingsoftwares in many number to generate a various types of events. Then,the event log generating unit 141 generates an event log indicative ofas to what event is generated in what order. The event log thusgenerated is stored in the event log file 151.

When a generation of the event log is terminated, the component couplingunit 142 sequentially reads the events stored in the event log file 151and wires the components stored in the component file 152 so that theevents read out are sequentially generated.

A wiring result is stored in the interobject wiring data file 134.Further, if necessary, an additional wiring is conducted by theinterobject wiring editor unit 122, and then the wiring is convertedinto wiring data for an interpreter use and stored in the wiring datafile 135 for an interpreter use.

FIG. 110 is a flowchart useful for under standing an operation of acomponent coupling unit. FIG. 111 is a flowchart useful forunderstanding an operation of a component coupling unit.

As shown in FIG. 111, the event log file stores therein an event log inwhich a number of event data are arranged, which is generated in theevent log generating unit 141 (cf. FIG. 109). The component file (cf.FIG. 109) stores therein a number of components in which the event isassociated with the method in accordance with a manner mentioned above.

In the component coupling unit, as show in FIG. 110, an event is loadedby one from the event log file (step 110_1). In step 110_2, the loadedevent is compared with a description of a corresponding relation betweenan event and a method, the description being possessed by a componentstored in the component file, and the same event as the loaded event isretrieved from the component file. When the same event is identified, awiring between a method associated with the event thus identified and aprevious message (which will be described below) is conducted (step110_3). A message, which is issued when the method is executed, is savedin the form of the “previous message”. Regarding the “previous message”,it is noted that the component file stores therein, as shown in FIG.102, such a type of component that when a method is executed, a messageindicative of that an event associated with the method is issued isissued. When the succeeding event remains in the event log stored in theevent log file 141 (step 110_4), the process returns to step 110_1 inwhich the succeeding event is loaded, and a wiring is conducted in asimilar fashion to that of the above.

Incidentally, with respect to the event which is arranged at the firstof the event log, no “previous message” exists. Thus the wiring betweena method and the previous message, as shown in FIG. 111, is notconducted, and a message, which is issued when the method issuing theevent is executed, is saved in the form of the “previous message”

In this manner, it is possible to implement an automatic wiring amongcomponents. This wiring makes it possible in execution by theinterpreter unit 123 to automatically sequentially issue events inaccordance with the sequence of generation of the event log by a user,and thus an automatic operation for the existing software is possible.

When the event log is once produced, the automatic wiring is conductedsequentially in accordance with the sequence of the events arranged onthe produced event log. It is also acceptable, however, that the eventlog once produced is displayed in the form of a table, and a userselects a necessary event from the table displayed so that an automaticwiring is conducted in accordance with a sequence selected by the user.According to this way, it is possible, when errors occur during ageneration of an event log, to correct the errors without doing overagain in generation of the event log.

In this manner, it is possible to implement, for example, an autopilotfunction of the WWW browser, by means of implementing an automaticoperation of the application.

Next, there will be explained an alternative embodiment of a scheme inwhich an existing software is “involved” and replaced by an object, andan alternative embodiment of a component which serves as an object incombination with an existing software.

FIG. 112 is a conceptual view showing a state in which an existingsoftware is “included” in a component. FIG. 113 is a view showing atable for definition items to give various definitions shown in FIG.112. In FIG. 113, the object is referred to as “LSI”.

Here, the existing software is an existing program consisting of afunction or a set of functions, not solely executed but executed whencalled from other application program or the like.

In the existing programming, there exist data x₁, x₂, x₃, . . . , x_(j),to be received from other programming, functions function 1, function 2. . . , function j, . . . for performing a processing based on thereceived data, and data y₁, y₂, . . . y_(j), . . . to be transmitted toother program, which are representative of a result of processing.

When such a program is “involved”, as shown in FIG. 112, it is assumedthat an object is defined with a separation into two parts. Theseparating way is given with a certain degree of option, and may bedetermined by a user.

Here, various types of definitions are given as shown in FIG. 112.First, as (A) a header, there are defined a project name for specifyingthe whole of works or processings and an environment for executing theprocessings.

(A) a header is followed by (B) a definition to be made up, (C) adefinition of an existing program (defining as to which existing programis to be replaced by an object), and (D) a definition of an object. Itis noted that (D) a definition of an object is given with a plurality ofdefinitions when the existing program is partitioned into a plurality ofobjects.

In (D) a definition of an object, there exist a definition of a data bus(a data input terminal) for use in data input for identifying a pointerwhich receives data from other object, a definition of a method (amethod terminal) for identifying a pointer of an entrance of theprocessing to be executed, and a definition of a data bus (a data outputterminal) for use in data output for identifying a pointer for data tobe transmitted to other object. It is to be noted that according to thepresent embodiment, since the existing program adapted for executing aprocessing when called from other program is assumed, it is notconsidered that this existing program requests (an issue of message) ofanother object a processing.

FIG. 113 is a view showing a table for definition items to give variousdefinitions shown in FIG. 112.

The keyword groups appearing on the table are of a kind of programlanguage useful for giving the above-mentioned various definitions. Adetailed explanation of the individual keywords will be omitted, sinceit is not essential to the present invention.

FIG. 114 is a view exemplarily showing images displayed on a displayscreen 102 a when definitions are given.

The left side of the screen shows structures of definitions, each ofwhich serves as an icon. When any of the icons is clicked, there isdisplayed as shown at the right side of the screen a frame of a tablefor giving a definition of the item associated with the clicked icon.Filling the frames one by one completes a definition table.

An adoption of such a type of scheme that the frames of the table isfilled makes it possible to readily give a definition on an interactivebasis.

When the definition table is completed, an existing program and acomponent comprising the definition table related to the existingprogram are stored in the object data file 132 with an extraction ofdata for display and wiring by the object builder unit 121 shown in FIG.2, and also are stored in the running object file 133 through aconversion into a running format by a compiler.

In this manner, it is possible to take in an existing software to theobject ware programming system in the form of the object, regardless ofa format of the existing software, maintaining the existing software asit is.

As described above, according to the present invention, it is possibleto specially enhance reuse of the software, and also to implement thesoftware higher in the running speed.

While the present invention has been described with reference to theparticular illustrative embodiments, it is not to be restricted by thoseembodiments but only by the appended claims. It is to be appreciatedthat those skilled in the art can change or modify the embodimentswithout departing from the scope and spirit of the present invention.

1. An object-oriented programming apparatus for interconnecting aplurality of objects each having data and operations, saidobject-oriented programming apparatus comprising: instruction couplingmeans for permitting a transfer of messages between a first object,having an output instruction bus portion for performing processing forissue of messages directed to at least one other object and a secondobject having an input instruction bus portion responsive to themessages issued by the first object and directed to the second objectfor activating a method of the second object associated with eachreceived message, by detecting a correspondence between the message ofthe first object the method of the second object; and input instructiontag table generating means for generating an input instruction tag tableindicating an association of messages of the at least one other objectwith methods of the first object upon detection of the correspondencetherebetween by said instruction coupling means, for each other objectgenerating one of the messages, on the output instruction bus portion ofthe first object.
 2. An object-oriented programming apparatus accordingto claim 1, wherein said instruction coupling means generates a methodelement list in which arranged are method elements including a method IDfor specifying the method of the second object associated with themessage of the first object, and a pointer to the second object in whichthe method specified by the method ID is executed, and wherein saidinput instruction tag table generating means generates the inputinstruction tag table and adds the input instruction tag table to themethod elements including the pointer to the second object associatedwith the input instruction tag table.
 3. An object-oriented programmingapparatus for interconnecting a plurality of objects each having dataand operations, said object-oriented programming apparatus comprising:instruction coupling means for permitting transfer of messages between afirst object having an output instruction bus portion for performingprocessing for issue of messages directed to at least one other objectand a second object having an input instruction bus portion responsiveto messages issued by the first object and directed to the second objectfor activating a method of the second object associated with eachreceived message, by detecting a correspondence between the message ofthe first object and the method of the second object; and an outputinstruction tag table generating means for generating an outputinstruction tag table indicating an association of methods of the atleast one other object with messages of the first object upon detectionof the correspondence therebetween by said instruction coupling means,for each other object receiving one of the messages, on the outputinstruction bus portion of the first object.
 4. An object-orientedprogramming apparatus according to claim 3, wherein said instructioncoupling means generates a method element list in which arranged aremethod elements including a method ID for specifying a method of thesecond object associated with a message of the first object, and apointer to the second object in which the method specified by the methodID is executed, and wherein said output instruction tag table generatingmeans generates the output instruction tag table and adds the outputinstruction tag table to the method elements including the pointer tothe second object associated with the output instruction tag table. 5.An object-oriented programming apparatus for interconnecting a pluralityof objects each having data and operations, said object-orientedprogramming apparatus comprising: instruction coupling means forpermitting transfer of messages between a first object having an outputinstruction bus portion for performing processing for issue of messagesdirected to at least one other object and a second object having aninput instruction bus portion responsive to messages issued by the firstobject and directed to the second object for activating a method of thesecond object associated with each received message, by detecting acorrespondence between the message of the first object and the method ofthe second object; and an input data tag table generating means forgenerating, upon detection of the correspondence between the message ofthe first object and the method of the second object by said instructioncoupling means, an input data tag table indicating an association of adata element list ID for identifying a data element list in whichpointers to data storage areas for storing data are arranged with apointer element list ID for identifying a pointer element list in whichpointers to data storage areas for storing pointers to data arearranged, for each other object, on the output instruction bus portionof the first object.
 6. An object-oriented programming according toclaim 5, wherein said instruction coupling means generates a methodelement list in which arranged are method elements including a method IDfor specifying a method of the second object associated with a messageof the first object, and a pointer to the second object in which themethod specified by the method ID is executed, and wherein said inputdata tag table generating means generates the input data tag table andadds the input data tag table to the method elements including thepointer to the second object associated with the input data tag table.7. An object-oriented programming apparatus for interconnecting aplurality of objects each having data and operations, saidobject-oriented programming apparatus comprising: instruction couplingmeans for permitting transfer of messages between a first object havingan output instruction bus portion for performing processing for issue ofmessage directed to at least one other and a second object having aninput instruction bus portion responsive to messages issued by the firstobject and directed to the second object for activating a method of thesecond object associated with each received message, by detecting acorrespondence between the message of the first object and the method ofthe second object; and an output data tag table generating means forgenerating, upon detection of the correspondence between the message ofthe first object and the method of the second object by said instructioncoupling means, an output data tag table indicating an association of apointer element list ID for identifying a pointer element list in whichpointers to pointer storage areas for storing pointers to data arearranged with a data element list ID for identifying a data element listin which pointers to data storage area for storing data are arranged,for each other object, on the output instruction bus portion of thefirst object.
 8. An object-oriented programming apparatus according toclaim 7, wherein said instruction coupling means generates a methodelement list in which arrange are method elements including a method IDfor specifying a method of the second object associated with a messageof the first object, and a pointer to the second object in which themethod specified by the method ID is executed, and wherein said outputdata tag table generating means generates the output data tag table andadds the output data tag table to the method elements including thepointer to the second object associated with the output data tag table.9. An object-oriented program storage medium for storing a plurality ofobjects each having data and operations, said object-oriented programstorage medium storing an object coupling program to control a computerto perform a method comprising: transferring messages between a firstobject having an output instruction bus portion for performingprocessing for issue of messages directed to at least one other and asecond object having an input instruction bus portion responsive tomessages issued by the first object and directed to the second objectfor activating a method of the second object associated with eachreceived message, by providing a correspondence between the message ofthe first object and the method of the second object; and generating aninput instruction tag table indicating an association of messages of theat least one other object with messages of the first object, for eachother object, on the output instruction bus portion of the first object.10. An object-oriented program storage medium according to claim 9,wherein said transferring generates a method element list in whicharranged are method elements including a method ID for specifying amethod of the second object associated with a message of the firstobject, and a pointer to the second object in which the method specifiedby the method ID is executed, and wherein said generating generates theoutput instruction tag table and adds the output instruction tag tableto the method elements including the pointer to the second objectassociated with the output instruction tag table.
 11. An object-orientedprogram storage medium according to claim 10, wherein the first objecthaving a method element to which the input instruction tag table isadded calls, when calling the second object identified by the methodelement, the second object giving as arguments the method ID and theinput instruction tag table which are stored in the method element. 12.An object-oriented program storage medium according to claim 11, whereinthe second object receives messages directed from the first object tothe second object and refers to the input instruction tag table, whichis an argument of the received message, to execute the method of thefirst object associated with the message of the second object.
 13. Anobject-oriented program storage medium according to claim 11, whereinthe second object receives the messages directed from the first objectto the second object, and refers to the input instruction tag table,which is an argument of the received message, to add the method elementrelated to the method of the first object associated with the message ofthe second object to the method element list of the second objectassociated with the message of the second object.
 14. An object-orientedprogram storage medium according to claim 11, wherein the second objectproduces a third object, receives the messages directed from the firstobject to the second object, and refers to the input instruction tagtable, which is an argument of the received message, to add the methodelement related to the method of the first object associated withmessages of the third object to the method element list of the thirdobject associated with the message of the third object.
 15. Anobject-oriented program storage medium according to claim 11, whereinthe second object receives messages directed from the first object tothe second object, and executes the method identified by the method IDwhich is an argument of the received message.
 16. An object-orientedprogram storage medium for storing a plurality of objects each havingdata and operations and an object coupling program to control a computerto perform a method comprising: transferring messages between a firstobject having an output instruction bus portion for performingprocessing for issue of messages directed to at least one other objectand a second object having an input instruction bus portion responsiveto messages issued by the first object and directed to the second objectfor activating a method of the second object associated with eachreceived message, by providing a correspondence that between the messageof the first object and the method of the second object; and generatingan output instruction tag table indicating an association of methods ofanother object with messages of self object, for each other object, onthe output instruction bus portion of the first object.
 17. Anobject-oriented program storage medium according to claim 16, whereinsaid transferring generates a method element list in which arranged aremethod elements including a method ID for specifying a method of thesecond object associated with a message of the first object, and apointer to the second object in which the method specified by the methodID is executed, and wherein said generating generates the outputinstruction tag table and adds the output instruction tag table to themethod elements including the pointer to the second object associatedwith the output instruction tag table.
 18. An object-oriented programstorage medium according to claim 17, wherein the first object having amethod element to which the output instruction tag table is added calls,when calling the second object identified by the method element, thesecond object giving as arguments the method ID and the outputinstruction tag table which are stored in the method element.
 19. Anobject-oriented program storage medium according to claim 18, whereinthe second object receives messages directed from the first object tothe second object, and refers to the output instruction tag table, whichis an argument of the received message, to add the method elementrelated to the method of the second object associated with the messageof the first object to the method element list of the first objectassociated with the message of the first object.
 20. An object-orientedprogram storage medium according to claim 18, wherein the second objectproduces a third object, receives messages directed from the firstobject to the second object, and refers to the output instruction tagtable, which is an argument of the received message, to add the methodelement related to the method of the third object associated withmessages of the first object to the method element list of the firstobject associated with the message of the first object.
 21. Anobject-oriented program storage medium according to claim 18, whereinthe second object receives messages directed from the first object tothe second object, and executes the method identified by the method IDwhich is an argument of the received message.
 22. An object-orientedprogram storage medium for storing a plurality of objects each havingdata and operations and an object coupling program to control a computerto perform a method comprising: transferring messages between a firstobject having an output instruction bus portion for performingprocessing for issue of messages directed to at least one other objectand a second object having an input instruction bus portion responsiveto messages issued by the first object and directed the second objectfor activating a method of the second object associated with eachreceived message, by providing a correspondence that between the messageof the first object and the method of the second object; and generatingan input data tag table indicating an association of a data element listID for identifying a data element list in which pointer to data storagearea for storing data are arranged with a pointer element list ID foridentifying a pointer element list in which pointers to data storageareas for storing pointers to data are arranged, for each other object,on the output instruction bus portion of the first object.
 23. Anobject-oriented program storage medium according to claim 22, whereinsaid transferring generates a method element list in which arranged aremethod elements including a method ID for specifying a method of thesecond object associated with a message of first object, and a pointerto the second object in which the method specified by the method ID isexecuted, and wherein said generating generates the input data tag tableand adds the input data tag table to the method elements including thepointer to the second object associated with the input data tag table.24. An object-oriented program storage medium according to claim 23,wherein the first object having a method element to which the input datatag table is added calls, when calling the second object identified bythe method element, the second object giving as arguments the method IDand the input tag table which are stored in the method element.
 25. Anobject-oriented program storage medium according to claim 24, whereinthe second object receives messages directed from the first object tothe second object, refers to the input data tag table, which is anargument of the received message, to obtain the pointer element list IDof the first object, produces the pointer element list identified by thepointer element list ID of the first object and the data element listidentified by the data element list ID associated with the pointerelement list ID of the second object, and writes the pointers arrangedin the data element list of the second object into the pointer storageareas indicated by the pointers arranged in the pointer elements list ofthe first object.
 26. An object-oriented program storage mediumaccording to claim 24, wherein the second object produces a thirdobject, receives messages directed from the first object to the secondobject, refers to the input data tag table, which is an argument of thereceived message, to obtain the pointer element list ID of the firstobject, produces the pointer element list identified by the pointerelement list ID, of the first object and the data element listidentified by the data element list ID associated with the pointerelement list ID of the third object, and writes the pointers arranged inthe data element list of the third object into the pointer storage areasindicated by the pointers arranged in the pointer element list of thefirst object.
 27. An object-oriented program storage medium according toclaim 24, wherein the second object receives messages directed from thefirst object to the second object, and executes the method identified bythe method ID which is an argument of the received message.
 28. Anobject-oriented program storage medium for storing a plurality ofobjects each having data and operations and an object coupling programto control a computer to perform a method comprising: transferringmessages between a first object having an output instruction bus portionfor performing processing for issue of messages directed to at least oneother object and a second object having an input instruction bus portionresponsive to messages issued by the first object and directed to thesecond object for activating a method the second object associated witheach received message, by providing a correspondence that between themessage of the first object and the method of the second object; andgenerating, upon detection of the correspondence between the message ofthe first object and the method of the second object by said instructioncoupling means, an output data tag table indicating an association of apointer element list ID for identifying a pointer element list in whichpointers to pointer storage area for storing pointers to data arearranged with a data element list ID for identifying a data element listin which pointers to data storage areas for storing data are arranged,for each other object, on the output instruction bus portion of thefirst object.
 29. An object-oriented program storage medium according toclaim 28, further comprising generating a method element list in whicharranged are method elements including a method ID for specifying amethod of the second object associated with a message of the firstobject, and a pointer to the second object in which the method specifiedby the method ID is executed, and wherein said generating generates theoutput data tag table and adds the output data tag table to the methodelements including the pointer to the second object associated with theoutput data tag table.
 30. An object-oriented program storage mediumaccording to claim 29, wherein the first object having the methodelement to which the output data tag table is added calls, when callingthe second object identified by the method element, the second objectgiving as arguments the method ID and the output data tag table whichare stored in the method element.
 31. An object-oriented program storagemedium according to claim 30, wherein the second object receivesmessages directed from the first object to the second object, refers tothe output data tag table, which is an argument of the received message,to obtain the data element list ID of the first object, produces thedata element list identified by the data element list ID, of the firstobject and the pointer element list identified by the pointer elementlist ID associated with the data element list ID, of the second, andwrites the pointers arranged in the data element list of the firstobject into the pointer storage areas indicated by the pointers arrangedin the pointer element list of the second object.
 32. An object-orientedprogram storage medium according to claim 30, wherein the second objectproduces a third object, receives messages directed from the firstobject to the second object, refers to the output data tag table, whichis an argument of the received message, to obtain the data element listID of the first object, produces the data element list identified by thedata element list ID of the first object and in addition the pointerelement list identified by the pointer element list ID associated withthe data element list ID of the third object, and writes the pointersarranged in the data element list of the first object into the pointerstorage areas indicated by the pointers arranged in the pointer elementlist of the third object.
 33. An object-oriented program storage mediumaccording to claim 30, wherein the second object receive messagesdirected from the first object to the second object, and executes themethod identified by the method ID which is an argument of the receivedmessage.
 34. A method performed by a computer to establish communicationbetween first and second objects, each having data and at least onemethod, comprising: detecting a correspondence between a message of thefirst object and a method of the second object; generating a dataelement list for first pointers to data storage areas in the firstobject; generating a pointer element list for second pointers to pointerstorage areas in the second object; generating a data tag tableassociating a data list identifier with a pointer list identifier, thedata list identifier identifying the data element list for the firstobject, and the pointer list identifier identifying the pointer elementlist for the second object; and after the first pointers have beenstored in the data element list, using the data list identifier and thepointer list identifier to write the first pointers into the pointerstorage areas indicated by the second pointers for reference by thesecond object to obtain the data in the first object.